Я составляю таблицу расценок для компаний, в которых я работаю. В настоящее время у меня есть таблица с кнопкой под ней, чтобы развернуть ее, кнопка говорит «Развернуть». Это функционально, за исключением того, что мне нужно, чтобы кнопка менялась на «Свернуть» при нажатии, а затем, конечно, на «Развернуть» при повторном нажатии. Надпись на кнопке является фоновым изображением.
Таким образом, в основном все, что мне нужно, это изменить фоновое изображение элемента div, когда на него нажимают, кроме как переключение.
Aug 9 '10 at 0:42
на SO, может быть поэтому :(Ответы:
Нужно сделать трюк, просто подключите его в событии щелчка на элементе
источник
Лично я бы просто использовал код JavaScript для переключения между двумя классами.
Сделайте так, чтобы CSS обрисовал в общих чертах все, что вам нужно в вашем Div, МИНУСЕ к фоновому правилу, затем добавьте два класса (например, расширенный и свернутый) в качестве правил, каждый из которых имеет правильное фоновое изображение (или положение фона, если используется спрайт).
CSS с разными изображениями
Или CSS с изображением спрайта
Затем...
Код JavaScript с изображениями
JavaScript со спрайтом
Примечание: элегантный toggleClass не работает в Internet Explorer 6, но приведенный ниже метод
addClass
/removeClass
будет работать и в этой ситуации.Наиболее элегантное решение (к сожалению, не дружественный к Internet Explorer 6)
Насколько я знаю, этот метод будет работать в разных браузерах, и я чувствовал бы себя гораздо более комфортно, играя с CSS и классами, чем с изменениями URL в скрипте.
источник
Есть два разных способа изменить фоновое изображение CSS с помощью jQuery.
$('selector').css('backgroundImage','url(images/example.jpg)');
$('selector').css({'background-image':'url(images/example.jpg)'});
Посмотрите внимательно, чтобы отметить различия. Во втором вы можете использовать обычный CSS и объединять несколько свойств CSS вместе.
источник
Если вы используете CSS-спрайт для фоновых изображений, вы можете увеличить смещение фона на +/- n пикселей в зависимости от того, расширяете ли вы или сворачиваете. Не переключение, но ближе к нему, чем необходимость переключения URL-адресов фонового изображения.
источник
Вот как я это делаю:
CSS
JS
источник
.toggleClass()
функцию jQuery .Один из способов сделать это - поместить оба изображения в HTML, внутри SPAN или DIV, вы можете скрыть настройки по умолчанию либо с помощью CSS, либо с помощью JS при загрузке страницы. Затем вы можете переключаться по клику. Вот аналогичный пример, который я использую для размещения значков влево / вниз в списке:
источник
Это работает во всех текущих браузерах на WinXP. В основном, просто проверяю текущее изображение backgrond. Если это image1, покажите image2, иначе покажите image1.
Материал jsapi просто загружает jQuery из CDN Google (проще для проверки файла misc на рабочем столе).
Замена предназначена для кросс-браузерной совместимости (например, добавьте цитаты в URL, а Firefox, Chrome и Safari удалите кавычки).
источник
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
Мой анимирован:
источник
Я сделал это с помощью регулярных выражений, так как я хотел сохранить относительный путь и не использовать добавить функцию addClass. Я просто хотел сделать это запутанным, лол.
источник
Старая запись, но это позволит вам использовать спрайт изображения и настроить повтор, а также позиционирование, используя сокращение для свойства css (background, repeat, left top).
источник
Я нашел решение на форуме, Toggle Background Img .
источник
CSS-спрайты работают лучше всего. Я пытался переключать классы и манипулировать свойством background-image с помощью jQuery, но ни один из них не работал. Я думаю, это потому, что браузеры (по крайней мере, последний стабильный Chrome) не могут «перезагрузить» уже загруженное изображение.
Бонус: CSS-спрайты быстрее загружаются и быстрее отображаются. Меньше HTTP-запросов означает более быструю загрузку страницы. Сокращение количества HTTP - лучший способ улучшить производительность интерфейса, поэтому я рекомендую постоянно идти по этому пути.
источник
Это довольно простой ответ меняет фон сайта со списком элементов
источник
Я также всегда использую временную метку, чтобы браузеры не кэшировали изображение. Например, если пользователь вращает свой аватар, он часто кэшируется и кажется неизменным.
источник