Все в порядке... Во всяком случае, в конечном итоге все будет в полном порядке!
Есть написаный мною по примеру слайдер (наверное так называется)
Javasсript
CSS
html
Он работает, но есть большое НО
При первом наведении на ссылку блок прыгает вниз
Но при повторном и последующих наведениях на ссылки он стоит как нужно и никуда не собирается...
скрины
Думаю накосячила где-то в стилях... Но выловить не могу
Помогите пожалуйста разобраться в чем я не права?
Спасибо за помощь!
Javasсript
CSS
html
Он работает, но есть большое НО


скрины
Думаю накосячила где-то в стилях... Но выловить не могу

Спасибо за помощь!
Можете кинуть на ifolder , гляну
Самый простой выход:
вместо
поставьте
или лучше даже
P.S. И почему люди не хотят использовать JQuery...
И почему люди не хотят использовать JQuery...
К моему сожалению и стыду, я еще не научилась хорошо его использовать... И не нашла на тот момент именно такого вида слайдер (он хоть так называется-то?) Поэтому использовала то, в чем поняла принцип и что попроще
Но я учусь ^_^
К примеру ваш слайдер реализовывался бы примерно так:
$('.slide_block_link a').mouseover(function(){
$('.slide div.slide_img').hide();
$('.slide div.slide_img').eq( $(this).index() ).show();
return false;
});
И не надо никакие id прописывать и дописывать onmouseover для ссылок
Если не нужно ID, то привязывается по стилям? Но стили у меня меняются в зависимости от страницы (т.е. на одной ховер красным, на другой - оранжевым...)... Не понимаю
Kakou ECTb Да, поэтому и копаюсь... Методом нужно сделать - нашла, скопировала, подстроила под ситуацию... При подстройке разбираюсь как работает и стараюсь запомнить...
Если не нужно ID, то привязывается по стилям?
чтобы взять элемент по id нужно написать $('#тут_id'); т.е. решёткой.
Да, можно привязать к стилям, но alhames в селекторе указал, что например
$('.slide_block_link a').mouseover(function(){ привяжется ко всем тегам a в тегах со стилем .slide_block_link.
А тут :
$('.slide div.slide_img').hide(); - к тегу
Т.е. идёт вначале базовый элемент, а после - уточнения если требуются. В общем, в интернете очень много статей для начинающих с подробным описанием. Но я считаю, что вам не нужно пока заморачиваться, пишите на js, а когда уже начнете разбираться в нем более ли менее - то можно и на Jquery по тиху пересаживаться. Удачи
означает что мы выбирает все 'a' внутри блока с классом 'slide_block_link';
означает что мы назначаем на onmouseover безымянную функцию, которую тут же и описываем.
означает что мы прячем все элементы 'div' с классом 'slide_img' внутри элемента с классом 'slide'
означает что мы включаем блок '.slide div.slide_img' с тем же индексом что и ссылка - для этого делаем выборку индекса ссылки, на которую навели курсор с помощью
Вроде все просто - не? о_О
говоришь ему "покажи!" (show) - он показывает, говоришь ему "дай индекс!" (index) - он дает
Впрочем со стороны мб иначе кажется..
И где все это писать? Мне необходимо чтобы все JS были отдельно от кода... Т.е. нужно обзывать функцию и вызывать уже непосредственно на странице... И тут я висну... Потому что не понимаю теперь куда девать первую строку...
А так я интуитивно понимаю как оно работает, но не понимаю как его поменять и применить...
Makha
как скрипт понимает какую картинку показывать по какой ссылке...
$(this).index() возвращает индекс той ссылки, на которую наведен курсор. Т.е. для первой ссылки это будет 0, для второй - 1 и т.д.
Если блоков ровно столько же сколько и ссылок, то наводя на ссылку с нулевым индексом мы должны включить блок с нулевым индексом - для этого служит функция .eq()
И что будет показываться сразу при загрузке?
Ну это уже от вас зависит.. Код только на маусоверах отрабатывать будет.
И где все это писать?
В JS-файле, конечно
Т.е. нужно обзывать функцию и вызывать уже непосредственно на странице... И тут я висну... Потому что не понимаю теперь куда девать первую строку...
Вы должны понять одну главную вещь - любой dom-элемент (читай "тег") является объектом, у которого есть ряд событий (events) которые наступают при определенных условиях.
Прописывая onmouseover="show('bl1') внтури тега вы назначаете на событие onmouseover этого тега функцию show
В JQuery эту же функцию можно назначить как $('a').mouseover(show);
Чтобы избавиться от указания параметра, мы должны брать его непосредственно из ссылки - это может быть дополнительный класс, атрибут, data, еще что-то.. Я использовал индекс.
Но зачем нам создавать функцию и потом ее к чему-то привязывать, если мы можем ее сразу описать: $('a').mouseover(function(){});
Такая форма использования JS фактически полностью избавляет страницу от лишнего кода - он переходит в JS-файл.
Как-то так.. Вы спрашивайте что непонятно - отвечу, ток не надо на каждый пустяковый вопрос отдельную темку создавать )
Теперь у меня другой вопрос, и тоже по скриптам Т_Т
Есть у меня выпадающие списки... Такой
и такой
На одной странице... Но они разного вида (ширины).
Т.к. нужен был для них особый стиль - сделала скриптом... А так как я нуб, и не знаю как их менять под разные стили, то двумя скриптами!
Получается что стиль первого задается css:
и скриптом
А стиль второго CSSом
и скриптом
с использованием jQuery, ага...
А вопрос такой... Первый селект не виден в ИЕ... а второй виден... Ну и криво это, использовать 2 скрипта для одних целей.. Подскажите как поменять второй скрипт, чтобы он реагировал на еще 1 стиль...
Простым копипастом с заменой имен не выходит
И второй вопрос, .niceCheck в ИЕ тоже не работает
Стиль скриптом выще задается, в html
в CSS
А можно как-либо перенести этот код в уже существующие файлы JS? Пробовала просто скопировать без html тега скрипта - не работает...
Message: Object doesn't support this property or method
Line: 39
Char: 7
Code: 0
Но там же просто цикл задается =(
for(a = 0; a < inputs.length; a++) {
не понимаю чем ему не нравится (
Касательно checkbox, тут два варианта:
При клике на ссылку мы переключаем класс "checked" (если он есть - он удалится, нету - добавится)
Потом находим input с уникальным классом, прописанном в rel ссылки и меняем его значение: если ссылка содержит класс "checked" - то 1, иначе - 0.
И возвращаем return false; чтобы ссылка ни в коем случае не сработала.
Другой вариант без rel и уникального класса:
CSS тот же. Второй пример покороче. Здесь мы используем наследование и с помощью find находим нужный нам input.
или
$(document).ready();
срабатывает когда загрузилось dom-дерево и свободно можно им манипулировать.
Это необходимо для того чтобы не пытаться менять элемент до того как он загрузился на страницу.
и в догонку еще один глупый вопрос... Встроила очередную фишку jQuery... Но она работает если прописано в самой странице:
Засуньте его вместе с остальным кодом в $(document).ready();
Точнее только эту часть:
По идеи поможет..
И еще, используйте синоним jQuery - $ (доллар). Если вы не пишете многопользовательские плагины, то это намного удобнее - и код короче и нагляднее
Есть у меня селекты вот такого вида:
Делаются они скрипт + css... Вот только работают они в ИЕ очень странно... Т.е. первый скрипт не работает, а второй работает...
Вот я и хочу второй скрипт, который меняет внешний вид селекта сделать универсальным... Т.е. чтобы не только на 1 стиль селектов вешать... Сейчас в ИЕ работает только с использованием JQuery...
И мне хочется как-то этот скрип заставить менять 2 селекта поразному (на разный фон и ширину)...
Вот тут взяла второй скрипт: makexhtml.ru/2010/svoj-stil-select-vypadayushhe...
Пойду попробую чекбоксы изменить
Правда я под ie6 по-моему этот сайт не затачивал..
Если кратенько:
При клике на "#search .select a" проверяем раскрыт ли у нас ul и соответственно реагируем. Причем тут можно было toggle использовать, вроде..
Прик клике на "#search .select li" сворачиваем сэмулированный select и назначаем скрытому input его значение.
Вроде все просто, только в данном примере много излишнего кода ) Сейчас я сделал бы несколько иначе..
Почему?
Я вам вовсе не предлагал скопировать приведенный мной пример, а просто пояснил возможную логику..
Если вы хотите не label-checkbox а именно отдельностоящий чекбокс, то задавайте ему inline-block и фиксированные высоту / ширину..
Правда на странице все еще 2 скрипта отвечают за внешний вид селектов
и у меня он не заработал(
Если ставлю вот так:
то срабатывает только последнее, и селекты все пропадают
Если кратенько:
Мне под ИЕ6 нужно будет адаптировать, угу
И совсем не понятен механизм работы... Что это псевдо селект понятно, но что и как там менять, перестраивая на мой стиль я не могу понять...
Зато ваш вариант решил бы проблему двух скриптов на странице... Разобратться бы мне в нем
Я ж написал про $(document).ready();
Весь код в JS файле должен быть заключен в эту функцию. Если конечно это не описание функции..
Я не люблю эти адаптации под браузеры с отключенным JS, т.к. из-за них браузеры с JS (а их 99,9%) нервно дергают страничку после загрузки.
Вам нужен именно select? Я думаю что нет.. Просто элемент навигации по характеристикам его напоминающий.
Зато ваш вариант решил бы проблему двух скриптов на странице...
Мой случай можно довести до ума и все манипуляции через JS делать через независимые классы (т.е. те классы, которые используются в JS не содержатся в CSS-файле и не описывают стиль).
но что и как там менять
Честно говоря не знаю как еще помочь..
Вот так работает:
А вот так - нет:
И думаю если я туда еще с чеками поставлю, то тоже чуда не случится...