- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 jquery 的新手,我试图在单击页码时淡入/淡出画廊的页面。页码也应淡入不同的颜色,边框应淡入/淡出。
我有两个问题。在 localhost 和 jsfiddle 上,图像的淡入/淡出有效,但在现场直播时,首次更改图库页面时会出现问题。新页面没有淡入,而是看起来根本没有动画。第一次点击后它工作正常。这可以在这里看到(正如我提到的,这不会发生在 jsfiddle 中):https://intellidesign.000webhostapp.com/gallery.html
代码在这里,但我还在下面粘贴了 jquery:https://jsfiddle.net/adamjroberts91/xpvt214o/524699/
页码周围的边框也有一些问题。当在图库中单击每个数字时,它应该从当前数字中删除一个类并将其添加到被单击的类中,但这似乎没有发生。唯一一次更改任何类(class)是在单击返回第 1 页时 - 类(class)从编号 1 中删除但未重新添加。
代码(第 3 页可能看起来没有加载,但它当前的图像与第 2 页相同):
// Add the class names for each gallery to variables
const pageOne = '.gallery__page-1';
const pageTwo = '.gallery__page-2';
const pageThree = '.gallery__page-2';
//Add the class names for pagination numbers to variables
const pageNumberOne = '.gallery__pagination-number-1';
const pageNumberTwo = '.gallery__pagination-number-2';
const pageNumberThree = '.gallery__pagination-number-3';
//Set the selected page and pagination to page 1
let currentPage = pageOne;
let currentPageNumber = pageNumberOne;
//Fade out the current page and fade in the new one
//Change color/outline of pagination numbers to show page selected
$(document).ready(() => {
$(pageTwo).hide();
$(pageThree).hide();
$(pageNumberOne).click(() => {
$(currentPage).fadeOut('slow', () => {
$(pageOne).fadeIn('slow');
});
currentPage = pageOne;
setTimeout(() => {
$(pageNumberOne).addClass('gallery__pagination-number-selected');
$(currentPageNumber).removeClass('gallery__pagination-number-selected');
}, 500);
currentPageNumber = pageNumberOne;
});
$(pageNumberTwo).click(() => {
$(currentPage).fadeOut('slow', () => {
$(pageTwo).fadeIn('slow');
});
currentPage = pageTwo;
setTimeout(() => {
$(pageNumberTwo).addClass('gallery__pagination-number-selected');
$(currentPageNumber).removeClass('gallery__pagination-number-selected');
}, 500);
currentPageNumber = pageNumberTwo;
});
$(pageNumberThree).click(() => {
$(currentPage).fadeOut('slow', () => {
$(pageThree).fadeIn('slow');
});
currentPage = pageThree;
setTimeout(() => {
$(pageNumberThree).addClass('gallery__pagination-number-selected');
$(currentPageNumber).removeClass('gallery__pagination-number-selected');
}, 500);
currentPageNumber = pageNumberThree;
});
});
最佳答案
我知道这里有很多答案,但有很多问题,所以我将在这里逐步解决一些问题,我可以根据需要更新我的答案。
无需在 css 中重复您的样式。类的要点是您可以在多个元素上使用相同的类。只需使用像 .gallery-page 这样的类,而不是复制 .gallery__page-1、.gallery__page- 等的样式规则。
图片太大。您的某些图片超过 20mb;加载这一页所服务的所有 140mb 需要 52 秒。您可以减小图像大小/质量设置,但仍能提供一组好看的图像。
无需存储 jQuery 选择器字符串,然后重复调用 jQuery 函数来访问该元素。
//bad
var thing = '.thing';
// later on calling this repeatedly
$(thing).addClass(...
// better
var thing = $( '.thing' );
// later on calling this repeatedly
thing.addClass(...
您的按钮类不起作用,因为超时在安排超时时不使用上下文,它在调用函数时使用上下文。上下文是指变量值的状态。具体来说,在您的 js 中,currentPageNumber 设置为超时函数将选择添加 selected
类并将其从中删除的类。如果该变量在超时函数内更新,它会更像您预期的那样工作,但 id 只是使用带有延迟的 css 转换而不是 js 超时。
您不需要将当前页面存储在 javascript 的变量中。只需将 .current 或 .active 之类的类附加到 dom 中的事件元素。当您对点击使用react时,您可以淡出所有页面,解析被点击链接的 id 以获取页码,然后淡入新的当前页面。这将修复您的 js 错误并使您的代码在添加更多页面时可重用。
我认为淡入不起作用,因为 jQuery 在渲染之前不知道它正在淡入的元素的大小。您可以尝试向页面添加高度,看看是否能解决淡入淡出问题。
关于javascript - jquery 褪色问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51622227/
在带有 jQuery 的 CoffeeScript 中,以下语句有什么区别吗? jQuery ($) -> jQuery -> $ - > 最佳答案 第一个与其他两个不同,就像在纯 JavaScr
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭13 年前。 Improve th
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
这个问题可能听起来很愚蠢,但请耐心等待,因为我完全是初学者。我下载了两个 jQuery 版本,开发版本和生产版本。我想知道作为学习 jQuery 的初学者,什么更适合我。 最佳答案 如果您对 jQue
The documentation说要使用 1.6.4,但我们现在已经升级到 1.7.2。 我可以在 jQuery Mobile 中使用最新版本的 jQuery 吗? 最佳答案 您当然可以,但如果您想
我在这里看到这个不错的 jquery 插件:prettyphoto jquery lightbox有没有办法只用一个简单的jquery来实现这样的效果。 我只需要弹出和内联内容。你的回复有很大帮助。
很明显我正在尝试做一些 jQuery 不喜欢的事情。 我正在使用 javascript 上传图片。每次上传图片时,我都希望它可见,并附加一个有效的删除脚本。显示工作正常,删除则不然,因为当我用 fir
这两个哪个是正确的? jQuery('someclass').click(function() { alert("I've been clicked!"); }); 或 jQuery('somec
我正在寻找一个具有以下格式的插件 if (jQuery)(function ($) { -- plugin code -- })(jQuery); 我明白 (function ($)
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭10 年前。 Improv
我知道这个问题已经被问过几次了,但想知道您是否可以帮助我解决这个问题。 背景:我尝试创建一个使用 Ajax 提交的表单(jQuery 表单提交)。我已经工作得很好,然后我想在表单上得到验证。我可以使用
我正在使用无处不在的jquery validate plugin用于表单验证。它支持使用metadata plugin用于向表单元素添加验证规则。 我正在使用此功能。当验证查找这些规则时,它会对元素进
我更喜欢为我一直在开发的网络社区添加实用的视觉效果,但随着事情开始堆积,我担心加载时间。 拥有用户真的更快吗加载(希望是缓存的)副本来自 Google 存储库的 jquery? 是否使用 jQuery
这个问题已经有答案了: Slide right to left? (17 个回答) 已关闭 9 年前。 你能告诉我有没有办法在 jQuery 中左右滑动而不使用 jQuery UI 和 jQuery
我如何找出最适合某种情况的方法?任何人都可以提供一些示例来了解功能和性能方面的差异吗? 最佳答案 XMLHttpRequest 是原始浏览器对象,jQuery 将其包装成一种更有用和简化的形式以及跨浏
运行时 php bin/console oro:assets:build ,我有 11 个这样的错误: ERROR in ../node_modules/jquery-form/src/jquery.
我试图找到 jQuery.ajax() 在源代码中的定义位置。但是,使用 grep 似乎不起作用。 在哪里? 谢谢。 > grep jQuery.ajax src/* src/ajax.js:// B
$.fn.sortByDepth = function() { var ar = []; var result = $([]); $(this).each(function()
我的页面上有多个图像。为了检测损坏的图像,我使用了在 SO 上找到的这个。 $('.imgRot').one('error',function(){ $(this).attr('src','b
我在理解 $ 符号作为 jQuery 函数的别名时遇到了一些麻烦,尤其是在插件中。你能解释一下 jQuery 如何实现这种别名:它如何定义 '$' 作为 jQuery 函数的别名?这是第一个问题。 其
我是一名优秀的程序员,十分优秀!