[вÑÑÑÑка] Ðак ÑделаÑÑ ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð½Ð° CSS и HTML, без Javascript
Родной из пÑедÑдÑÑÐ¸Ñ ÑÑаÑей Ð¼Ñ ÑаÑÑмоÑÑели, как ÑделаÑÑ Ð²ÐºÐ»Ð°Ð´ÐºÐ¸ на CSS пÑи помоÑи ÑÑÑка Ñ Ñадио-кнопками. Ð ÑÑой ÑÑаÑÑе Ð¼Ñ Ð¿Ñи помоÑи аналогиÑного Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð° Ñоздадим ÑимпаÑиÑнÑй ÑлайдеÑ, не ÑÑебÑÑÑий Javascript Ð´Ð»Ñ ÑабоÑÑ.
СлайдеÑÑ, как пÑавило делаÑÑÑÑ Ñ Ð¸ÑполÑзованием Javascript. ÐбÑÑно Ð´Ð»Ñ ÑÑого задейÑÑвÑÑÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑÐµÐºÑ JQuery. ХоÑÑ CSS и не позволÑÐµÑ ÑоздаÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑнкÑионалÑнÑй ÑÐ»Ð°Ð¹Ð´ÐµÑ Ñ ÐºÑÑей возможноÑÑей, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº анимаÑÐ¸Ñ Ð¿Ð¾ ÑаймеÑÑ, лиÑÑание палÑÑем на ÑаÑ-ÑкÑине и Ñ.п., во Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑлÑÑаÑÑ Ñакие пÑодвинÑÑÑе возможноÑÑи и не ÑÑебÑÑÑÑÑ.
ÐÑоÑÑой ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð´Ð»Ñ Ð±Ð»Ð¾Ð³Ð° гоÑаздо пÑоÑе ÑвеÑÑÑаÑÑ Ð½Ð° ÑиÑÑом HTML и CSS, Ñем задейÑÑвоваÑÑ Ð´Ð»Ñ ÑÑого возможноÑÑи Javascript. Ðо-пеÑвÑÑ , код ÑÑилей ÑлайдеÑа полÑÑиÑÑÑ Ð³Ð¾Ñаздо пÑоÑе и понÑÑнее, Ñем код ÑлайдеÑа на Javascript. Ðо-вÑоÑÑÑ , Ñа ÑаÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелей, коÑоÑÐ°Ñ Ð¿Ð°ÑаноидалÑно не довеÑÑÐµÑ ÑайÑам и Ð·Ð°Ñ Ð¾Ð´Ð¸Ñ Ð½Ð° незнакомÑе ÑайÑÑ ÑолÑко Ñ Ð°Ð´Ð´Ð¾Ð½Ð¾Ð¼ NoScript, вÑÑезаÑÑим веÑÑ JS-код, Ñоже ÑÐ¼Ð¾Ð¶ÐµÑ Ð²Ð¾ÑполÑзоваÑÑÑÑ Ð²Ð°Ñим ÑлайдеÑом.
ÐÐ¾ÐµÑ Ð°Ð»Ð¸!
ÐÑоÑÑой ÑÐ»Ð°Ð¹Ð´ÐµÑ Ñ Ð°Ð½Ð¸Ð¼Ð¸ÑованнÑм пеÑеклÑÑением кадÑов
ÐÑимеÑание: Ð ÑÑом пÑимеÑе Ñ Ð±ÑÐ´Ñ Ð¾ÑиенÑиÑоваÑÑÑÑ Ð½Ð° ÑамÑе новÑе возможноÑÑи CSS. Ðод не пÑедназнаÑен Ð´Ð»Ñ ÑабоÑÑ Ð² ÑÑаÑÑÑ Ð±ÑаÑзеÑÐ°Ñ .
ÐаÑнÑм Ñоздание ÑлайдеÑа Ñ Ñакого кода:
<div class='sliderA'> <input type="radio" name="slider1" id="slider1_1" checked="checked"> <label for="slider1_1"></label> <div></div> <input type="radio" name="slider1" id="slider1_2"> <label for="slider1_2"></label> <div></div> <input type="radio" name="slider1" id="slider1_3"> <label for="slider1_3"></label> <div></div> <input type="radio" name="slider1" id="slider1_4"> <label for="slider1_4"></label> <div></div> </div>
ÐонÑÐµÐ¹Ð½ÐµÑ ÑлайдеÑа — div Ñ ÐºÐ»Ð°ÑÑом sliderA. ÐаждÑй ÐºÐ°Ð´Ñ ÑлайдеÑа опиÑÑваеÑÑÑ ÑÑÑÐ¼Ñ Ñегами:
- Радиокнопкой (input type="radio"), оÑвеÑаÑÑей за ÑоÑÑоÑние данного кадÑа (видно / не видно)
- ÐеÑкой label, оÑвеÑаÑÑей за оÑобÑажение кнопки пеÑÐµÑ Ð¾Ð´Ð° на даннÑй ÑлайдеÑ.
- Тегом div в коÑоÑом Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ ÑодеÑжимое кадÑа.
Радиокнопки внÑÑÑи одного ÑлайдеÑа Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ðµ Ð¸Ð¼Ñ name. Также, вÑе Ñадиокнопки Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ ÑникалÑнÑе (ÑазлиÑнÑе) иденÑиÑикаÑоÑÑ id. ÐеÑка в поле for должна ÑодеÑжаÑÑ Ð·Ð½Ð°Ñение id ÑооÑвеÑÑÑвÑÑÑей Ñадиокнопки. (ÐÑли вам не понÑÑно, поÑÐµÐ¼Ñ Ð¸ заÑем вÑÑ ÑÑо делаеÑÑÑ ÑиÑайÑе ÑÑаÑÑÑ Ð¿Ñо вкладки. Там вÑÑ ÑÑо обÑÑÑнено подÑобно.)
ÐаÑинаем ÑабоÑаÑÑ Ð½Ð°Ð´ ÑÑилÑми. ÐонÑейнеÑ:
.sliderA { width: 400px; height: 250px; border: 1px solid #888; position: relative; text-align: center; }
ÐÑ Ð·Ð°Ð´Ð°Ñм ÑикÑиÑованнÑе ÑазмеÑÑ ÐºÐ¾Ð½ÑейнеÑа. Я ÑÑÑановил Ð¸Ñ ÑавнÑми ÑазмеÑÑ Ð¸Ð·Ð¾Ð±Ñажений, коÑоÑÑе Ñ Ð±ÑÐ´Ñ Ð¸ÑполÑзоваÑÑ Ð² ÑÑом пÑимеÑе. СвойÑÑво position: relative Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð´Ð°ÑÑ Ð½Ð¾Ð²ÑÑ ÑоÑÐºÑ Ð¾ÑÑÑÑÑа позиÑий вложеннÑÑ ÐºÐ¾Ð½ÑейнеÑов. СвойÑÑво text-align: center Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ð», ÑÑÐ¾Ð±Ñ Ð²ÑÑовнÑÑÑ Ð¿Ð¾ ÑенÑÑÑ Ð¿Ð¾Ð»Ð¾ÑÑ Ð¼ÐµÑок-кнопок, коÑоÑÑе Ñ Ð±ÑÐ´Ñ Ð¿Ð¾Ð·Ð¸ÑиониÑоваÑÑ ÐºÐ°Ðº inline-ÑлеменÑÑ.
ÐÑобÑажение Ñадиокнопок нам не нÑжно, ÑкÑÑваем Ð¸Ñ :
.sliderA > input { display: none; }
ÐÑоÑмлÑем меÑки-кнопки. Ðода много, но ниÑего Ñложного неÑ:
.sliderA > input + label { display: inline-block; width: 10px; height: 10px; border-radius: 8px; background: rgba(90, 90, 90, 0.8); border: 2px solid rgba(190, 190, 190, 0.8); cursor: pointer; z-index: 100; position: relative; margin-right: 4px; top: 90%; transition: background 0.8s ease-out 0s; } .sliderA > input + label:hover { background: rgba(250, 250, 250, 0.8); } .sliderA > input:checked + label { background: rgba(220, 220, 220, 0.8); }
Я ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°Ñ ÑвойÑÑво display: inline-block, ÑÑо Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ ÑазмеÑÑиÑÑ Ð¼ÐµÑки одной ÑÑÑокой и вÑÑовнÑÑÑ Ð¸Ñ Ð¿Ð¾ ÑенÑÑÑ ÐºÐ°Ðº ÑÑÑоÑнÑе ÑлеменÑÑ, и вмеÑÑе Ñ Ñем задаÑÑ Ð¸Ð¼ ÑикÑиÑованнÑе ÑазмеÑÑ ÐºÐ°Ðº блокам. ÐаÑем Ñ Ð·Ð°Ð´Ð°Ñ ÑиÑÐ¸Ð½Ñ Ð¸ вÑÑоÑÑ, а Ñакже ÑадиÑÑ ÑкÑÑÐ³Ð»ÐµÐ½Ð¸Ñ Ñглов, ÑÐ²ÐµÑ Ñона и ÑÐ²ÐµÑ Ð³ÑаниÑÑ. ÐÑÑ ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº ÑомÑ, ÑÑо наÑи меÑки бÑдÑÑ Ð¾ÑобÑажаÑÑÑÑ Ð² виде маленÑÐºÐ¸Ñ ÐºÑÑглÑÑ ÐºÐ½Ð¾Ð¿Ð¾Ðº.
СвойÑÑво cursor позволÑÐµÑ Ð·Ð°Ð´Ð°ÑÑ Ð²Ð½ÐµÑний вид кÑÑÑоÑа мÑÑи пÑи наведении на кнопкÑ. Я ÑÑÑановил знаÑение pointer, Ñ.е. вид ÑказаÑÐµÐ»Ñ Ð¼ÑÑи бÑÐ´ÐµÑ Ñакой же, как пÑи наведении на ÑÑÑÐ»ÐºÑ («ÑказаÑелÑнÑй палеѻ).
СвойÑÑво z-index Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¼ÐµÑки-кнопки лежали повеÑÑ ÐºÐ°Ð´Ñов ÑлайдеÑа. ÐÐ»Ñ ÑÑого же ÑÑÑановлено ÑвойÑÑво position: relative — инаÑе z-index не бÑÐ´ÐµÑ ÑабоÑаÑÑ.
margin-right добавлÑÐµÑ Ð¾ÑÑÑÑÐ¿Ñ Ð¼ÐµÐ¶Ð´Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°Ð¼Ð¸, а top: 90% ÑÐ´Ð²Ð¸Ð³Ð°ÐµÑ Ð¸Ñ Ð² нижнÑÑ ÑаÑÑÑ ÐºÐ¾Ð½ÑейнеÑа. Ðожно бÑло задаÑÑ Ð²ÐµÑÑикалÑнÑÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ ÐºÐ½Ð¾Ð¿Ð¾Ðº более гÑамоÑно, но здеÑÑ Ñ Ð¾Ð³ÑаниÑÑÑÑ ÑÑим ÑпоÑобом.
Также Ñ Ð·Ð°Ð´Ð°Ñ ÑÐ²ÐµÑ Ñона Ð´Ð»Ñ Ð½Ð°Ð¶Ð°Ñой кнопки и кнопки, на коÑоÑÑÑ Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð° мÑÑÑ. СвойÑÑво transition опÑеделÑÐµÑ Ð°Ð½Ð¸Ð¼Ð°ÑÐ¸Ñ Ð´Ð»Ñ ÑÐ¼ÐµÐ½Ñ Ñона.
Также нам Ñледовало ÑÑÑÑаниÑÑ Ð²Ñе пÑÐ¾Ð±ÐµÐ»Ñ Ð¸ пеÑÐµÐ²Ð¾Ð´Ñ ÑÑÑок Ð¼ÐµÐ¶Ð´Ñ Ñегами ÑлайдеÑа, Ñак как пÑи иÑполÑзовании display: inline-block они дадÑÑ Ð½Ð°Ð¼ лиÑние зазоÑÑ Ð¼ÐµÐ¶Ð´Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°Ð¼Ð¸. Так Ð¼Ñ Ð¿Ð¾ÑÑÑпали в пÑедÑдÑÑей ÑÑаÑÑе. Я не ÑÑал ÑейÑÐ°Ñ ÑÑого делаÑÑ Ð´Ð»Ñ ÑпÑоÑÐµÐ½Ð¸Ñ Ð²Ð¾ÑпÑиÑÑÐ¸Ñ ÐºÐ¾Ð´Ð° HTML.
ÐолÑÑилаÑÑ Ð²Ð¾Ñ ÑÐ°ÐºÐ°Ñ Ð·Ð°Ð³Ð¾Ñовка ÑлайдеÑа:
ÐобавлÑем ÑÑили Ð´Ð»Ñ div-ов, в коÑоÑÑÑ Ð±ÑÐ´ÐµÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ ÑодеÑжимое кадÑа:
.sliderA > div { position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; z-index: 0; }
ÐÑе кадÑÑ Ð±ÑдÑÑ Ð·Ð°Ð½Ð¸Ð¼Ð°ÑÑ Ð¾Ð´Ð½Ð¾ и Ñо же положение. position: absolute позволÑÐµÑ Ð¸Ð·ÑÑÑÑ Ð±Ð»Ð¾ÐºÐ¸ из поÑока и ÑазмеÑÑиÑÑ Ð¸Ð· пÑоизволÑнÑм обÑазом. top, left, right, bottom задаÑÑ ÐºÐ¾Ð¾ÑдинаÑÑ ÐºÐ°Ð´Ñа Ñаким обÑазом, ÑÑо ÐºÐ°Ð´Ñ Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð²ÐµÑÑ ÐºÐ¾Ð½ÑÐµÐ¹Ð½ÐµÑ ÑлайдеÑа Ñеликом. z-index оÑпÑавлÑÐµÑ ÐºÐ°Ð´ÑÑ Ð¿Ð¾Ð´ кнопки пеÑеклÑÑÐµÐ½Ð¸Ñ ÐºÐ°Ð´Ñов, инаÑем Ð¼Ñ Ð½Ðµ Ñможем ÑÑи кнопки ни ÑвидеÑÑ, ни нажаÑÑ.
ТепеÑÑ ÑÐ°Ð¼Ð°Ñ Ð³Ð»Ð°Ð²Ð½Ð°Ñ ÑаÑÑÑ ÑлайдеÑа — показ и ÑкÑÑÑие кадÑов в завиÑимоÑÑи Ð¾Ñ Ð½Ð°Ð¶Ð°Ñой кнопки. ТÑадиÑионнÑй Ð¿Ð¾Ð´Ñ Ð¾Ð´ ÑкÑÑÑÐ¸Ñ ÑлеменÑов ÑÑÑаниÑÑ Ñ Ð¸ÑполÑзованием ÑвойÑÑва display: none нам не ÑовÑем Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ. ÐÐµÐ´Ñ Ð´Ð»Ñ ÑлайдеÑа Ñ Ð¾ÑелоÑÑ Ð±Ñ ÑделаÑÑ Ð¿Ð»Ð°Ð²Ð½Ð¾Ðµ пеÑеклÑÑение кадÑов, но CSS не позволÑÐµÑ Ð·Ð°Ð´Ð°ÑÑ Ð°Ð½Ð¸Ð¼Ð°ÑÐ¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ display пÑи помоÑи пÑавил transition.
ÐÐ»Ñ Ð¿Ð»Ð°Ð²Ð½Ð¾Ð³Ð¾ ÑкÑÑÑÐ¸Ñ Ð¸ поÑÐ²Ð»ÐµÐ½Ð¸Ñ ÐºÐ°Ð´Ñов нам понадобÑÑÑÑ Ð´Ð²Ð° ÑвойÑÑва: opacity и visibility; а Ñакже ÑпомÑнÑÑÑй transition.
СвойÑÑво opacity позволÑÐµÑ Ð² виде деÑÑÑиÑной дÑоби задаÑÑ ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¿ÑозÑаÑноÑÑи ÑлеменÑа ÑÑÑаниÑÑ, Ð¾Ñ 0 (полноÑÑÑÑ Ð¿ÑозÑаÑнÑй) до 1 (полноÑÑÑÑ Ð½ÐµÐ¿ÑозÑаÑнÑй). ÐапÑимеÑ, opacity: 0.5 — пÑозÑаÑноÑÑÑ 50%.
Ðо даже полноÑÑÑÑ Ð¿ÑозÑаÑнÑй ÑлеменÑ, Ñ Ð¾ÑÑ Ð¸ невидимÑй, пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ ÑеагиÑоваÑÑ Ð½Ð° нажаÑÐ¸Ñ Ð¼ÑÑÑÑ. ÐоÑÑомÑ, еÑли Ñ Ð²Ð°Ñ Ð² ÑлайдеÑе Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ ÑÑÑлки, нажаÑие на ÑÑÑÐ»ÐºÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к ÑÑабаÑÑÐ²Ð°Ð½Ð¸Ñ ÑовÑем не Ñой ÑÑÑлки, коÑоÑÐ°Ñ Ð²Ð¸Ð´Ð½Ð° на ÑкÑане.
ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¾ÑклÑÑиÑÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¸ ÑделаÑÑ ÐµÐ³Ð¾ пÑозÑаÑнÑм Ð´Ð»Ñ ÑелÑков мÑÑÑÑ, понадобиÑÑÑ Ð²ÑоÑое ÑвойÑÑво: visibility: hidden. Ðднако visibility не позволÑÐµÑ Ð·Ð°Ð´Ð°ÑÑ ÑаÑÑиÑнÑÑ Ð¿ÑозÑаÑноÑÑÑ. ÐÐ»ÐµÐ¼ÐµÐ½Ñ Ð»Ð¸Ð±Ð¾ виден, либо неÑ.
ÐоÑÑÐ¾Ð¼Ñ Ð¼Ñ Ð±Ñдем пÑи помоÑи transition анимиÑоваÑÑ Ð¾Ð±Ð° ÑвойÑÑва, ÑÑÐ¾Ð±Ñ Ð´Ð¾Ð±Ð¸ÑÑÑÑ Ð½Ñжного нам ÑÑÑекÑа. СÑÑÑ Ð¼ÐµÑода в ÑледÑÑÑем:
- Ðогда полÑзоваÑÐµÐ»Ñ Ð¿ÐµÑеклÑÑÐ°ÐµÑ ÐºÐ°Ð´Ñ, новÑй ÐºÐ°Ð´Ñ Ð¿Ð¾ÑвлÑеÑÑÑ Ñ visibility: visible, но Ñ opacity: 0.
- ÐаÑем пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð°Ð½Ð¸Ð¼Ð°ÑÐ¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ opacity Ñ Ð¾Ð±Ð¾Ð¸Ñ ÐºÐ°Ð´Ñов. У ÑÑаÑого кадÑа она плавно опÑÑкаеÑÑÑ Ð´Ð¾ нÑлÑ, а Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ — плавно поднимаеÑÑÑ Ð´Ð¾ единиÑÑ.
- ÐоÑле завеÑÑÐµÐ½Ð¸Ñ Ð°Ð½Ð¸Ð¼Ð°Ñии, visibility ÑÑаÑого кадÑа ÑÑÑанавливаеÑÑÑ Ð² знаÑение hidden, ÑÑÐ¾Ð±Ñ Ð¾Ð½ не меÑал ÑелÑкам мÑÑÑÑ Ð¿Ð¾ Ð½Ð¾Ð²Ð¾Ð¼Ñ ÐºÐ°Ð´ÑÑ.
ÐÐ¾Ñ Ñакой код Ñ Ð¼ÐµÐ½Ñ Ð¿Ð¾Ð»ÑÑилÑÑ:
Также Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ð» пÑавило Ð´Ð»Ñ Ñега p внÑÑÑи кадÑа, ÑÑÐ¾Ð±Ñ ÑделаÑÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñи к каÑÑинкам:.sliderA > div { visibility: hidden; opacity: 0; transition: opacity 0.8s ease-out 0.1s, visibility 0.1s ease-out 0.9s; } .sliderA > input:checked + label + div { visibility: visible; opacity: 1; transition: opacity 0.8s ease-out 0.1s, visibility 0.1s ease-out 0s; }
.sliderA > div > p { position: absolute; top: 0px; left: 0px; right: 0px; text-align: center; color: #fff; text-shadow: 1px 1px 2px #000; }
ÐопиÑÑваем HTML-код ÑлайдеÑа Ð´Ð»Ñ Ð½Ð°Ñего пÑимеÑа:
<div class='sliderA'> <input type="radio" name="slider1" id="slider1_1" checked="checked"> <label for="slider1_1"></label> <div> <p>ÐоÑÑ Ð¾Ð´ над оÑÑÑовом</p> <img src='https://lh3.googleusercontent.com/-XGgw41OSARk/VePicTdAdgI/AAAAAAAAAS4/WeBbxp4ebQg/s400-Ic42/00099_manaisland_1920x1200.jpg' alt=''> </div> <input type="radio" name="slider1" id="slider1_2"> <label for="slider1_2"></label> <div> <p>ÐзÑÑнÑй кÑай</p> <img src='https://lh3.googleusercontent.com/-aafAKIoTkT4/VePihWk2BHI/AAAAAAAAATA/zQVtiYD_eDc/s400-Ic42/00201_lakejipe_1920x1200.jpg' alt=''> </div> <input type="radio" name="slider1" id="slider1_3"> <label for="slider1_3"></label> <div> <p>ÐакаÑÐ½Ð°Ñ Ñинева</p> <img src='https://lh3.googleusercontent.com/-ikbDMRhLc_I/VePkT4XLFtI/AAAAAAAAATg/qaHqQk89RAw/s400-Ic42/00744_laclahachesunset_1920x1200.jpg' alt=''> </div> <input type="radio" name="slider1" id="slider1_4"> <label for="slider1_4"></label> <div> <p>СелÑÑкий пейзаж</p> <img src='https://lh3.googleusercontent.com/-BLXeHJNyOqw/VePimp_e_wI/AAAAAAAAATQ/BVw_9LFehyU/s400-Ic42/00442_pyrenees_1920x1200.jpg' alt=''> </div> </div>
РполÑÑаем Ð²Ð¾Ñ Ñакой ÑезÑлÑÑаÑ:
ÐÑоÑÑой ÑÐ»Ð°Ð¹Ð´ÐµÑ Ñ Ð°Ð½Ð¸Ð¼Ð¸ÑованнÑм пеÑеклÑÑением кадÑов, вÑоÑой ваÑианÑ
Ð ÑлайдеÑе можно ÑазмеÑаÑÑ ÐºÐ°Ðº обÑÑнÑе ÑоÑогÑаÑии, Ñак и лÑбой ÑекÑÑ, ÑÑÑлки на дÑÑгие ÑÑÑаниÑÑ ÑайÑа и Ñак далее.
Ð ÑлÑÑае, когда Ð²Ñ Ð¸ÑполÑзÑеÑе ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð´Ð»Ñ ÑазмеÑÐµÐ½Ð¸Ñ Ð¿ÑоÑÑÑÑ Ð¸Ð·Ð¾Ð±Ñажений (напÑимеÑ, Ð²Ñ ÑÑÑиÑÑ, и пÑбликÑеÑе ÑоÑогÑаÑии из ваÑÐ¸Ñ Ð¿ÑÑеÑеÑÑвий) Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ Ð¶ÐµÐ»Ð°Ð½Ð¸Ðµ ÑÑовеÑÑенÑÑвоваÑÑ ÑÐ»Ð°Ð¹Ð´ÐµÑ Ñак, ÑÑÐ¾Ð±Ñ Ð½Ð°Ð¶Ð°Ñие на ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð¿Ñиводило к пеÑÐµÑ Ð¾Ð´Ñ Ðº ÑледÑÑÑÐµÐ¼Ñ Ð¸Ð·Ð¾Ð±ÑажениÑ. РпÑедÑдÑÑем пÑимеÑе кадÑÑ ÑлайдеÑа пеÑеклÑÑаÑÑÑÑ ÑолÑко кÑÑглÑми кнопками, а нажаÑие на Ñамо изобÑажение ниÑего не даÑÑ.
УÑовеÑÑеÑÑвÑем Ð½Ð°Ñ ÑлайдеÑ. Ð Ñаблон ÑлайдеÑа добавим по еÑе одной меÑке Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ кадÑа:
<div class='sliderA' > <input type="radio" name="slider2" id="slider2_1" checked="checked"> <label for="slider2_1"></label> <div></div> <label for="slider2_2"></label> <input type="radio" name="slider2" id="slider2_2"> <label for="slider2_2"></label> <div></div> <label for="slider2_3"></label> <input type="radio" name="slider2" id="slider2_3"> <label for="slider2_3"></label> <div></div> <label for="slider2_4"></label> <input type="radio" name="slider2" id="slider2_4"> <label for="slider2_4"></label> <div></div> <label for="slider2_1"></label> </div>
Ðак видиÑе, меÑка идÑÑÐ°Ñ Ð¿Ð¾Ñле пеÑвого кадÑа, акÑивиÑÑÐµÑ Ð²ÑоÑой кадÑ. ÐеÑка, ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ð°Ñ Ð¿Ð¾Ñле вÑоÑого кадÑа, акÑивиÑÑÐµÑ ÑÑеÑий кадÑ; поÑле ÑÑеÑÑего — ÑеÑÑвÑÑÑÑй. ÐоÑледнÑÑ Ð¼ÐµÑка акÑивиÑÑÐµÑ Ð¿ÐµÑвÑй кадÑ.
ÐеÑки Ð¼Ñ ÑаÑположим Ñак, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ пеÑекÑÑвали веÑÑ ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð¸ лежали вÑÑе изобÑажениÑ, но ниже полоÑÑ ÐºÐ½Ð¾Ð¿Ð¾Ðº. ÐеÑки пÑозÑаÑнÑе, поÑÑÐ¾Ð¼Ñ ÑÐºÐ²Ð¾Ð·Ñ Ð½Ð¸Ñ Ð²Ð¸Ð´Ð½Ð¾ ÑодеÑжимое кадÑа. ÐÑи показе кадÑа Ð½Ð¾Ð¼ÐµÑ N вмеÑÑе Ñ Ð½Ð¸Ð¼ оÑобÑажаеÑÑÑ Ð¼ÐµÑка Ð´Ð»Ñ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð° на ÐºÐ°Ð´Ñ N + 1. (ÐÐ»Ñ Ð¿Ð¾Ñледнего кадÑа — меÑка пеÑÐµÑ Ð¾Ð´Ð° на пеÑвÑй кадÑ.)
.sliderA > input + label + div + label { display: none; } .sliderA > input:checked + label + div + label { display: block; position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; z-index: 50; }
Таким обÑазом, пÑи ÑелÑке по изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑабаÑÑÐ²Ð°ÐµÑ Ð°ÐºÑиваÑÐ¸Ñ ÑледÑÑÑего изобÑажениÑ. РезÑлÑÑаÑ:
У Ð½Ð°Ñ Ð¿Ð¾Ð»ÑÑилÑÑ ÑимпаÑиÑнÑй ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð´Ð»Ñ ÑоÑогÑаÑий Ñ Ð²ÐºÐ»Ð°Ð´Ð¾ÑнÑм пеÑеклÑÑением кадÑов. Такой ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð¾ÑлиÑно подойдÑÑ, напÑимеÑ, Ð´Ð»Ñ Ð¿ÑбликаÑии ÑоÑогÑаÑий в блоге о пÑÑеÑеÑÑвиÑÑ .
Ð ÑледÑÑÑей ÑÑаÑÑе о CSS Ñ ÑаÑÑмоÑÑÑ Ð´ÑÑгой ваÑÐ¸Ð°Ð½Ñ ÑлайдеÑа: Ñ Ð¿ÐµÑеклÑÑением кадÑов пÑи помоÑи кнопок «Ð²Ð¿ÐµÑÑд» и «Ð½Ð°Ð·Ð°Ð´».
18 комменÑаÑиев
ÐодÑкажиÑе, полÑÑиÑÑÑ Ð»Ð¸ пÑикÑÑÑиÑÑ Ñакой ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð½Ð° http://decoacoustic.ru вмеÑÑо ÑÑаÑного?
замеÑаÑелÑно вÑÑ Ð¾Ð´Ð¸Ñ!!!
ТолÑко, ÑкажиÑе пожалÑйÑÑа, поÑÐµÐ¼Ñ ÑÑÐ¾Ñ ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð½Ðµ ÑабоÑÐ°ÐµÑ Ð¿Ñи Ð²Ñ Ð¾Ð´Ðµ на ÑÐ°Ð¹Ñ Ñо ÑмаÑÑÑона?
ÐоÑледнее ÑообÑение моÑ. ÐÑиноÑÑ Ð¸Ð·Ð²Ð¸Ð½ÐµÐ½Ð¸Ñ!!! ÐÑÑ ÑабоÑаеÑ, ÑÑо бÑли пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñо ÑмаÑÑÑоном.
Ркак зделаÑÑ ÑÑоб изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ñами пеÑеклÑÑалиÑÑ ÐºÐ°Ðº ÑлайдÑоÑ?
паÑибо
Ðак бÑд-Ñо не ÑабоÑÐ°ÐµÑ Ñ Ð¼ÐµÐ½Ñ ÑлайдеÑ, checked не пеÑеклÑÑаеÑ
Ðозможно ли вмеÑо инпÑÑов иÑполÑзоваÑÑ div ? напÑÐ¸Ð¼ÐµÑ Ð¿Ñи наведение на блок Ñ Ð±Ð¾ÐºÑ Ð±ÑÐ´ÐµÑ Ð¼ÐµÐ½ÑÑÑÑ ÐºÐ°ÑÑинка?
Я вÑе Ñ ÑоÑноÑÑÑÑ ÑкопиÑовала, но Ñ Ð¼ÐµÐ½Ñ Ð½Ðµ полÑÑилÑÑ ÑлайдеÑ. Ðа веÑÑ Ñ 5 ÑоÑек веÑÑикалÑно и под ними 5 ÑиÑÑнков пÑоÑÑо вÑÑавленÑ. Ðак иÑпÑавиÑÑ? Ðли Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð¼Ð¸Ð¼Ð¾ ÑÑого ÑÑо Ñо пиÑаÑÑ Ð½Ð°Ð´Ð¾?
напиÑиÑе Ñак в .sliderA > input + label Ñ Ð°Ð²ÑоÑа непÑавилÑно
background: rgba(90, 90, 90, 0.8) none repeat scroll 0 0;
border: 2px solid rgba(190, 190, 190, 0.8);
border-radius: 8px;
cursor: pointer;
display: block;
float: left;
height: 10px;
left: 43%;
margin-right: 4px;
position: relative;
top: 105%;
transition: background 0.8s ease-out 0s;
width: 10px;
z-index: 100;
СпаÑибо болÑÑое! ÐÑÑ ÑабоÑаеÑ, СУÐÐÐ !!!
СпаÑибо болÑÑое! ÐÑÐµÐ½Ñ Ð¿Ð¾Ð½ÑÑное обÑÑÑнение даже Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñка! ÐÑе полÑÑилоÑÑ!
ХоÑоÑий ÑлайдеÑ, ÑкажиÑе бÑÐ´ÐµÑ Ð»Ð¸ ÑабоÑаÑÑ Ð½Ð° ÑÑÑаниÑе html на ÑайÑе http://feoparagliding.com ?
ÐÑоÑÑ ÑазÑÑÑниÑÑ: поÑÐµÐ¼Ñ ÐµÑли не напиÑаÑÑ
.sliderA > div {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
z-index: 0;
}
Ñо
.sliderA > input + label {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 8px;
background: rgba(90, 90, 90, 0.8);
border: 2px solid rgba(190, 190, 190, 0.8);
cursor: pointer;
z-index: 100;
position: relative;
margin-right: 4px;
top: 90%;
transition: background 0.8s ease-out 0s;
}
не бÑÐ´ÐµÑ ÐºÐ¾ÑÑекÑно ÑабоÑаÑÑ ÑвойÑÑва display: inline-block не бÑÐ´ÐµÑ ÑÑÑоиÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ в линиÑ
top: 80% бÑÐ´ÐµÑ Ð²ÑÑ Ð¾Ð´Ð¸ÑÑ Ð·Ð° гÑаниÑÑ Ð±Ð»Ð¾ÐºÐ° ÑодиÑелÑ, Ñ Ð¾ÑÑ Ñ sliderA position: relative;
Ð Ñем ÑвÑзÑ?
ÐоÑабоÑал ÑкÑипÑ, добавил авÑомаÑиÑеÑкое пеÑелиÑÑÑвание на JS
var inp = document.getElementsByName('slider1');
var sliderInterval = setInterval(nextSlide, 2000);
function nextSlide(){
for( var i = 0; i < inp.length; i++){
if (inp[i].checked == true) {
i++;
if (i != inp.length) {
inp[i].checked = true;
}
else
inp[0].checked = true;
}
}
}
ÐобÑÑй денÑ. ÐомогиÑе пожалÑйÑÑа Ñ ÑÑим ÑлайдеÑом. ÐÑе Ñделал как по инÑÑÑÑкÑии - Ñ Ð¼ÐµÐ½Ñ Ð¿Ð¾Ð»ÑÑаеÑÑÑ ÐºÐ°ÑÑинки дÑÑг под дÑÑгом и Ñадиокнопки Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸.
УÑел Ñакже попÑÐ°Ð²ÐºÑ Ð¸Ð· комменÑаÑÐ¸Ñ Ð¾Ð± оÑибке - не помогло.
ÐожеÑе даÑÑ ÐºÐ¾Ð´ Ð´Ð»Ñ Ð²ÑÑавки Ñ ÐºÐ¾Ð³Ð¾ ÑабоÑаеÑ?
СпаÑибо болÑÑое, вÑе понÑÑно и пÑоÑÑо!
покажиÑе кÑо-нибÑÐ´Ñ Ð²ÐµÑÑ ÐºÐ¾Ð´ Ñеликом пожалÑйÑÑа!!!?
Ð, ÑимпаÑиÑнÑй блок комменÑаÑиев. ÐоделиÑеÑÑ, где взÑли? ))
ÐÑпÑавиÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑий