【问题标题】:Jquery boxslider won't load until I inspect element在我检查元素之前,Jquery boxslider 不会加载
【发布时间】:2015-11-16 15:17:38
【问题描述】:

我正在研究我的作品集,您可以访问hereonclick 命令用于隐藏和显示我的作品中不同的 divs。

我找到了一个 boxslider 代码来帮助展示我的照片,但是当我最初加载页面时,框架是空的。只有在我检查元素之后才会出现图片。

我也不断收到此错误,我很确定这与 boxslider 框架未加载我的图片有关:

未捕获的类型错误:无法读取 null 的属性“样式”

这是 boxslider 框架的 css 的一部分:

.bx-wrapper {
  position: relative;
  margin: 0 auto 60px;
  padding: 0;
  *zoom: 1;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
}
.bx-wrapper img {
  max-width: 90%;
  display: block;
}
.bxslider {
  margin: 0 auto;
  padding: 0 auto;

}
ul.bxslider {
  list-style: none;
}
.bx-viewport {
  /*fix other elements on the page moving (on Chrome)*/
  -webkit-transform: translatez(0);
}
/** THEME
===================================*/
.bx-wrapper {
  -moz-box-shadow: 0 0 5px #ccc;
  -webkit-box-shadow: 0 0 5px #ccc;
  box-shadow: 0 0 5px #ccc;
  border: 5px solid #fff;
  background: #fff;
}
.bx-wrapper .bx-pager,
.bx-wrapper .bx-controls-auto {
  position: absolute;
  bottom: -30px;
  width: 100%;
}
/* LOADER */
.bx-wrapper .bx-loading {
  min-height: 50px;
  background: url('images/bx_loader.gif') center center no-repeat #ffffff;
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2000;
}
/* PAGER */
.bx-wrapper .bx-pager {
  text-align: center;
  font-size: .85em;
  font-family: Arial;
  font-weight: bold;
  color: #666;
  padding-top: 20px;
}
.bx-wrapper .bx-pager.bx-default-pager a {
  background: #666;
  text-indent: -9999px;
  display: block;
  width: 10px;
  height: 10px;
  margin: 0 5px;
  outline: 0;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
}
.bx-wrapper .bx-pager.bx-default-pager a:hover,
.bx-wrapper .bx-pager.bx-default-pager a.active,
.bx-wrapper .bx-pager.bx-default-pager a:focus {
  background: #000;
}
.bx-wrapper .bx-pager-item,
.bx-wrapper .bx-controls-auto .bx-controls-auto-item {
  display: inline-block;
  *zoom: 1;
  *display: inline;
}

【问题讨论】:

  • 请发布相关的 JavaScript 以及您尝试使用的 BoxSlider 库或插件。
  • 绝对是 bxSlider,可能是 4.2.5 最新版本。

标签: javascript jquery html css


【解决方案1】:

您应该尝试单独设置每个 bxSlider。在您的 js.js 文件中执行以下操作:

var wood = $(".wood").bxSlider();
var book = $(".book").bxSlider();
var bw   = $(".bw").bxSlider();

在你的 HTML 中这样做:

<ul class="wood">
  <li>.....

<ul class="book">
  <li>.....

<ul class="bw">
  <li>.....

只是一个建议,如果您使用 HTML5(您使用的是&lt;!doctype html&gt;),您不应该使用&lt;center&gt;,它甚至在 HTML4 中已被弃用。实际上摆脱那些&lt;center&gt;我很确定使用HTML5可能会完全拒绝渲染它们,因此错误代码调用&lt;center&gt;null

你也有这个:

 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

<!-- image slider -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

你只需要其中一个。

一旦你做了这三件事,但仍然没有解决,我还有一个想法。

【讨论】:

  • 您好,感谢您的帮助。我已经将您的编辑内容上传到我的网站,但我仍然遇到同样的问题。我想我意识到 Uncaught TypeError 与我在创建不同主题时使用的 ul 标签有关。在另一个标签中包含一个 ul 标签是不是很糟糕?也许 css 覆盖了其他 css?
  • @matthewolf bxSlider 可以在其中运行 ul,但在您很好地掌握插件的 API 之前,不会建议您偏离基本配置。 Chrome PC 有问题,可能涉及到这个:stackoverflow.com/questions/4390134/…。我不是 100% 确定... Firefox PC 可以工作。我禁用了 Google Analytic 并将一个 jquery 脚本放在 bxSlider 脚本之前。所有脚本都在&lt;/body&gt; 的结束标记处 作为一般规则,我将CSS 放在头部,脚本放在底部。顺便说一句,有很多重复的 ID(例如 id="gifs")..cont>
  • @matthewolf <...> 这是无效的。 ID 必须始终是唯一的。我打算将重复的 ID 更改为 Classes,但其中有很多,我将把它留给你:P 我还从 js.js 获取了该代码并将其放在页面底部。 &lt;link&gt;&lt;script&gt;(即外部文件)越少,HTTP 请求就越少。 Google 字体还有 2 个&lt;link&gt;,您应该将它们合并为一个&lt;link&gt;,并且您应该将字体粗细调整为 2 或 3(例如 200、500、900)。所以下一步是去演示并复制源代码,然后将其上传到您的服务器。
  • @matthewolf glpjt.s3.amazonaws.com/test/mc5.html 哦,差点忘了,这个&lt;a href="javascript:void(0)" onclick="document.getElementById('light8').style.display='none';document.getElementById('fade8').style.display='none'" class="close"&gt;X&lt;/a&gt; 有错误,我要去上班了,祝你好运。顺便说一句,它加载真的很慢,所以在有 bxSlider 的区域使用Inspect Element,它会弹出。如果你还需要帮助,我会在晚上晚些时候过来。 (UTC-7) 太平洋夏令时
猜你喜欢
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-27
  • 2015-02-10
  • 2011-10-23
  • 2014-01-16
相关资源
最近更新 更多