Показать сообщение отдельно
  #2 (permalink)  
Старый 25.12.2011, 06:40
Аватар для Paguo-86PK
Профессор
Отправить личное сообщение для Paguo-86PK Посмотреть профиль Найти все сообщения от Paguo-86PK
 
Регистрация: 16.09.2009
Сообщений: 253

<html><head><title>Seek Bar</title></head>
<body>
Реализация SeekBar'а с использованием встроенного svg:
<div>
<svg id='svgim' xmlns="http://www.w3.org/2000/svg" width='320px' height='240px'
 onmouseout='document.getElementById("seekHide").setAttribute("begin", (this.getCurrentTime() + 1.1) + "s")'
 onmousemove='document.getElementById("seekSet").setAttribute("begin", (this.getCurrentTime() + 0.1) + "s")'>
<defs>
<linearGradient id='seekBar' x1='50%' y1='0%' x2='50%' y2='100%'>
 <stop offset='0%' stop-color='gray'/>
 <stop offset='80%' stop-color='silver'/>
</linearGradient>
<linearGradient id='seekSlot' x1='50%' y1='0%' x2='50%' y2='100%'>
 <stop offset='0%' stop-color='silver'/>
 <stop offset='80%' stop-color='gray'/>
</linearGradient>
<radialGradient id="seekButton" gradientUnits="objectBoundingBox" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
 <stop offset="0%" stop-color="white" />
 <stop offset="50%" stop-color="gray" />
 <stop offset="100%" stop-color="white" />
</radialGradient>
</defs>
<path id='circlePath' d='M0,0 a64,64 0 1 1 -1,0'/>
<linearGradient id='grad' x1='0%' y1='0%' x2='100%' y2='100%' r='100%' fx='75%' fy='65%'>
 <animate fill='freeze' begin='0s' dur='5s' attributeName='x1' attributeType='XML' repeatCount='10'>
  <mpath xlink:href='#circlePath'/>
</animate>
 <stop offset="0%" stop-color="blue"/>
 <stop offset="20%" stop-color="red"/>
 <stop offset="30%" stop-color="orange"/>
 <stop offset="40%" stop-color="yellow"/>
 <stop offset="50%" stop-color="green"/>
 <stop offset="60%" stop-color="deepskyblue"/>
 <stop offset="70%" stop-color="blue"/>
 <stop offset="80%" stop-color="purple"/>
 <stop offset="100%" stop-color="white"/>
</linearGradient>
<pattern id='rating' x='0px' y='0px' width='128px' height='128px'
 patternUnits='userSpaceOnUse'
 patternUnit='objectBoundingBox'>
<circle cx='64px' cy='64px' r='64px' fill='url(#grad)'>
</circle>
</pattern>
<g>
<circle cx="20px" cy="20px" r="100px" fill='url(#rating)'>
 <animateMotion fill='freeze' begin='0s' dur='1s' repeatCount='13.25'>
  <mpath xlink:href='#circlePath'/>
</animateMotion>
</circle>
</g>
<g width='320px' height='32px' fill='red'>
<rect x='0px' y='0px' width='320px' height='16px' fill='url(#seekBar)'/>
<rect x='4px' y='4px' width='312px'' height='8px' fill='url(#seekSlot)'
 onmousedown='this.viewportElement.setCurrentTime((evt.clientX - 0) / 320 * 14)'/>
 onmouseout='document.getElementById("seekHide").setAttribute("begin", (this.getCurrentTime() + 2) + "s")'
 onmouseover='document.getElementById("seekHide").setAttribute("begin", (this.getCurrentTime() - 2) + "s"); document.getElementById("seekSet").setAttribute("begin", (this.getCurrentTime() + 0) + "s")'>
<circle cx='0px' cy='8px' r='4px' stroke='none' fill='url(#seekButton)'>
 <animateMotion dur='14s' from='4,0' to='316,0' fill='freeze' repeatCount='1'/>
</circle>
 <animateMotion begin='0s' dur='0.001s' to='0,0' fill='freeze' repeatCount='1'/>
 <animateMotion id='seekSet' begin='13.4s' to='0,0' fill='freeze' repeatCount='1'/>
 <animateMotion id='seekHide' begin='14s' dur='0.75s' to='0,-16' fill='freeze' repeatCount='1'/>
</g>
</svg>
</div></body>

Последний раз редактировалось Paguo-86PK, 25.12.2011 в 06:56. Причина: Если готовый этот переделать, можно в SVG реализовать регулятор громкости
Ответить с цитированием