自定义数据类型,css和javascript
Custom data-* types, css and javascript
all. 我正在为我正在处理的一个项目构建一个全屏 jQuery 库,并且遇到了一个小问题。
要查看正在发生的事情的演示,请访问 http://www.idealbrandon.com/gallery.html。
基本上,我使用自定义属性数据背景为每张幻灯片加载 bg 图像。 这在第一次通过时工作正常,但是每当第二次加载幻灯片时,它都不会加载。 幻灯片的 HTML 是:
<div class="slide" data-background="/img/gallery/2.jpg">
<div class="location">Magical Aqua Ducks</div>
<div class="verse"></div>
</div>
有问题的Javascript是
for(var i = 0; i < totalSlides; i++){
$pagerList
.append('<li class="page" data-target="'+i+'"></li>');
if ($slides.eq(i).attr("data-background") != null){
$slides.eq(i).css("background-image", "url("+$slides.eq(i).attr("data-background")+")");
};
};
整个JavaScript文件是
(function($){
function prefix(el){
var prefixes = ["Webkit", "Moz", "O", "ms"];
for (var i = 0; i < prefixes.length; i++){
if (prefixes[i] + "Transition" in el.style){
return '-'+prefixes[i].toLowerCase()+'-';
};
};
return "transition" in el.style ? "" : false;
};
var methods = {
init: function(settings){
return this.each(function(){
var config = {
slideDur: 7000,
fadeDur: 800
};
if(settings){
$.extend(config, settings);
};
this.config = config;
var $container = $(this),
slideSelector = '.slide',
fading = false,
slideTimer,
activeSlide,
newSlide,
$slides = $container.find(slideSelector),
totalSlides = $slides.length,
$pagerList = $container.find('.pager_list');
prefix = prefix($container[0]);
function animateSlides(activeNdx, newNdx){
function cleanUp(){
$slides.eq(activeNdx).removeAttr('style');
activeSlide = newNdx;
fading = false;
waitForNext();
};
if(fading || activeNdx == newNdx){
return false;
};
fading = true;
$pagers.removeClass('active').eq(newSlide).addClass('active');
$slides.eq(activeNdx).css('z-index', 3);
$slides.eq(newNdx).css({
'z-index': 2,
'opacity': 1
});
if(!prefix){
$slides.eq(activeNdx).animate({'opacity': 0}, config.fadeDur,
function(){
cleanUp();
});
} else {
var styles = {};
styles[prefix+'transition'] = 'opacity '+config.fadeDur+'ms';
styles['opacity'] = 0;
$slides.eq(activeNdx).css(styles);
//$slides.eq(activeNdx).css("background-image", "url("+$slides.eq(activeNdx).attr("data-background")+")");
var fadeTimer = setTimeout(function(){
cleanUp();
},config.fadeDur);
};
};
function changeSlides(target){
if(target == 'next'){
newSlide = (activeSlide * 1) + 1;
if(newSlide > totalSlides - 1){
newSlide = 0;
}
} else if(target == 'prev'){
newSlide = activeSlide - 1;
if(newSlide < 0){
newSlide = totalSlides - 1;
};
} else {
newSlide = target;
};
animateSlides(activeSlide, newSlide);
};
function waitForNext(){
slideTimer = setTimeout(function(){
changeSlides('next');
},config.slideDur);
};
for(var i = 0; i < totalSlides; i++){
$pagerList
.append('<li class="page" data-target="'+i+'"></li>');
if ($slides.eq(i).attr("data-background") != null){
$slides.eq(i).css("background-image", "url("+$slides.eq(i).attr("data-background")+")");
//alert($slides.eq(i).attr("data-background"));
};
};
$container.find('.page').bind('click',function(){
var target = $(this).attr('data-target');
clearTimeout(slideTimer);
changeSlides(target);
});
var $pagers = $pagerList.find('.page');
$slides.eq(0).css('opacity', 1);
$pagers.eq(0).addClass('active');
activeSlide = 0;
waitForNext();
});
}
};
$.fn.easyFader = function(settings){
return methods.init.apply(this, arguments);
};
})(jQuery);
提前致谢
看
了一下你的图库.js文件,你有以下函数,在你的淡入淡出过渡时调用: cleanUp()
在此函数中,您可以从$slides
中删除样式属性:
$slides.eq(activeNdx).removeAttr('style');
这也删除了背景图像样式。 然后永远不会再次设置。
在上面一行之后,您可以删除您可能想要的样式,然后包括:
$slides.eq(activeNdx).css("background-image", "url("+$slides.eq(activeNdx).data("background")+")");
相关文章:
- 如何根据需要优雅地添加javascript/css
- 颗粒-JavaScript/CSS缩小SIMPLE/ADVANCED优化不起作用
- 在 javascript css 属性中使用变量
- Javascript/Css导航未显示在jquery文档上,仅在ie中准备就绪
- Javascript -> CSS (display:none to display:block)
- 如何使用javascript/css创建一个弹出屏幕的表单
- JavaScript:css 将开关切换到暗模式
- 删除加载javascript/css时的页面闪烁
- 使用 JavaScript CSS 的下拉菜单
- 影响JavaScript / CSS的HTML空间格式
- javascript css更改问题
- HTML/Javascript/CSS框堆叠在一起
- 优化JavaScript CSS下载
- 为什么javascript+CSS显示设置会使单选按钮不受欢迎
- 如何对齐画布旁边的文本和按钮(WebGL+JavaScript+CSS)
- 向上一个/下一个图像幻灯片添加计数器(仅限javascript/css)
- Javascript/CSS,如何保持更改
- SEO,PHP MasterPage和渲染阻塞Javascript/CSS
- Javascript&Css - onclick() 上的图像修改
- 如何使用变量制作纯 javascript .css() 函数