javascript - 图像 slider - 移动和桌面的不同图像

标签 javascript html css slider

我正在使用 SlidesJS .图像 slider 在桌面上工作正常,但现在我想为移动设备加载不同的图像集。我查看了 SlidesJS 论坛及其网站,但我在那里找不到任何提示,我也查看了关于 SO 的各种问题,但没有一个有效。由于 slidesJS 提供了这样的默认代码

Javascript

 <!-- SlidesJS Required: Initialize SlidesJS with a jQuery doc ready -->
  <script>
    $(function() {
      $('#gallery-slides').slidesjs({
        width: 800,
        height: 450,
        play: {
          active: true,
          auto: true,
          interval: 4000,
          swap: true
        }
      });
    });

  </script>

HTML

<div id="gallery-slides">
 <img src="images/nearby_page_concept.jpg" >
 <img src="images/location_gif2-min.gif" >
 <img src="images/smart_search_page.jpg" >
 <img src="images/privacy_control_concept.jpg" >
 <img src="images/messaging_page_concept.jpg" >
 <img src="images/user_search_page_concept.jpg" >   

 </div>

CSS

#gallery-slides {
      display: none
    }



    #gallery-slides .slidesjs-navigation {
      margin-top:5px;
    }

    a.slidesjs-next,
    a.slidesjs-previous,
    a.slidesjs-play,
    a.slidesjs-stop {
      background-image: url(../images/btns-next-prev.png);
      background-repeat: no-repeat;
      display:block;
      width:12px;
      height:18px;
      overflow: hidden;
      text-indent: -9999px;
      float: left;
      margin-right:5px;
    }

    a.slidesjs-next {
      margin-right:10px;
      background-position: -12px 0;
    }

    a:hover.slidesjs-next {
      background-position: -12px -18px;
    }

    a.slidesjs-previous {
      background-position: 0 0;
    }

    a:hover.slidesjs-previous {
      background-position: 0 -18px;
    }

    a.slidesjs-play {
      width:15px;
      background-position: -25px 0;
    }

    a:hover.slidesjs-play {
      background-position: -25px -18px;
    }

    a.slidesjs-stop {
      width:18px;
      background-position: -41px 0;
    }

    a:hover.slidesjs-stop {
      background-position: -41px -18px;
    }

    .slidesjs-pagination {
      margin: 7px 0 0;
      float: right;
      list-style: none;
    }

    .slidesjs-pagination li {
      float: left;
      margin: 0 1px;
    }

    .slidesjs-pagination li a {
      display: block;
      width: 13px;
      height: 0;
      padding-top: 13px;
      background-image: url(../images/pagination.png);
      background-position: 0 0;
      float: left;
      overflow: hidden;
    }

    .slidesjs-pagination li a.active,
    .slidesjs-pagination li a:hover.active {
      background-position: 0 -13px
    }

    .slidesjs-pagination li a:hover {
      background-position: 0 -26px
    }

    #gallery-slides a:link,
    #gallery-slides a:visited {
      color: #333
    }

    #gallery-slides a:hover,
    #gallery-slides a:active {
      color: #9e2020
    }

    .gallery-navbar {
      overflow: hidden
    }

     #gallery-slides {
      display: none
    }

    .containerslides {
      margin: 0 auto
    }

我尝试了不同的方法来让 slider 在移动设备上改变图像

将类名改为 <img src="xyz.jpg">并借助 CSS 中的媒体查询声明不同的图像

试过HTML中javascript的if else语句

我还需要弄清楚是否可以更改图像然后我还需要更改 SlidesJS 的默认高度和 JS 部分的宽度。

请指导我如何为图像 slider 更改不同屏幕尺寸的不同图像。

请注意,我不想在不显示时加载所有不同分辨率的图像。它会影响网站的性能。

最佳答案

你可以使用 jquery,如果你通过 javascript 加载你想要的图像,这将只加载代码的特定部分,因此不会影响网站的性能

jQuery

<script>if (window.matchMedia("(max-width: 480px)").matches) {
        $.getScript("mobile.js");
    } else { 
        $.getScript("Desktop.js");
    }
    </script>

mobile.js/Desktop.js - 存储所有图像的位置,分别在移动/桌面上显示它是这样的

JS

var _img1 = document.getElementById('id1');
var _img2 = document.getElementById('id2');
var _img3 = document.getElementById('id3');

var newImg = new Image;
newImg.onload = function() {
    _img1.src = 'https://whateversource';
    _img2.src = 'https://whateversource';
    _img3.src = 'https://whateversource';
    wherever you want to return it goes here
}

HTML

<div id="gallery-slides">
 <img id="id1">
 <img id="id2">
 <img id="id3"> 
 </div>

享受 :)

关于javascript - 图像 slider - 移动和桌面的不同图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58220493/

相关文章:

javascript - 当没有互联网连接时,如何在 webview 中加载自定义错误页面?

javascript - 从 React Router 6 中的路由组件外部获取参数

javascript - Node + html页面加载+ javascript,无法加载main.js文件

html - 具有适当滚动行为的绝对定位的布局行为

html - 如何使子 div 相对于父 div 流畅

Javascript 和表达式引擎标签

javascript - Node.js async.whilst() 根本没有执行

html - margin top to div inside another div

HTML CSS 框样式

jquery - 如何使用谷歌地图隐藏 div