У меня есть простой плагин jQuery, который добавляет цвет фона к элементу div.
Я хочу добавить параметр в свой плагин, чтобы я мог изменить цвет фона селектора в зависимости от шириныобласть просмотра.
В настоящее время у меня есть опция, настроенная так, чтобы вы могли использовать объект JavaScript, чтобы легко установить ширину точки останова и настройки для этой точки останова и выше.
По какой-то причине последнийнастройка в адаптивном объекте работает, но предыдущие два - нет.Может кто-нибудь объяснить, почему это так?
Мне бы хотелось иметь что-то похожее на то, как работают адаптивные настройки на Slick carousel .
Это мой код плагина JavaScript:
<script>
(function($, window, document, Math, undefined) {
$.fn.myPlugin = function(options) {
options = $.extend(
{
background: "orange"
},
options
);
if (options.background) {
$("div").css("background-color", options.background);
}
if (options.responsive) {
options.responsive.forEach(function(obj, index) {
var breakpoint = obj["breakpoint"];
var settings = obj["options"];
var background = settings["background"];
$(window).resize(function() {
if (window.innerWidth < breakpoint) {
if (options.background) {
$("div").css("background-color", options.background);
}
} else {
if (options.background) {
$("div").css("background-color", background);
}
}
});
});
}
};
})(jQuery, window, document, Math);
</script>
Вот как я инициализирую в своем документе:
<script>
$(document).ready(function() {
$('div').myPlugin({
background: 'red',
responsive: [{
breakpoint: 100,
options: {
background: 'blue'
}
},
{
breakpoint: 400,
options: {
background: 'green'
}
},
{
breakpoint: 700,
options: {
background: 'yellow'
}
}
]
});
});
</script>
Вот кодовая ручка: https://codepen.io/anon/pen/daJbEa