Heim  >  Artikel  >  Web-Frontend  >  Klicken Sie basierend auf JavaScript auf das Bild auf dem mobilen Endgerät, um das größere Bild anzuzeigen. Klicken Sie auf das größere Bild, um die Javascript-Kenntnisse auszublenden

Klicken Sie basierend auf JavaScript auf das Bild auf dem mobilen Endgerät, um das größere Bild anzuzeigen. Klicken Sie auf das größere Bild, um die Javascript-Kenntnisse auszublenden

WBOY
WBOYOriginal
2016-05-16 15:33:443338Durchsuche

1. Nachfrage

Klicken Sie auf das Bild, um das größere Bild anzuzeigen, und klicken Sie dann auf das größere Bild, um es auszublenden. Es wird hauptsächlich auf mobilen Geräten verwendet, da der mobile Bildschirm klein ist und Sie möglicherweise große Bilder anzeigen müssen.

2. Code

<!DOCTYPE html>
<html>
<meta charset="utf-8"/>
<head runat="server">
<title>JQuery点击图片查看大图by starof</title>
<style type="text/css">
.exampleImg { height:100px; cursor:pointer;}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
//alert($);
// (function (window, undefined) {
// var MyJQuery = function () {
// window.MyjQuery = window.$ = jQuery; window.$ = MyJQuery;
// };
// })(window);
// alert($);
$.fn.ImgZoomIn = function () {
bgstr = '<div id="ImgZoomInBG" style=" background:#000000; filter:Alpha(Opacity=70); opacity:0.7; position:fixed; left:0; top:0; z-index:10000; width:100%; height:100%; display:none;"><iframe src="about:blank" frameborder="5px" scrolling="yes" style="width:100%; height:100%;"></iframe></div>';
//alert($(this).attr('src'));
imgstr = '<img id="ImgZoomInImage" src="' + $(this).attr('src')+'" onclick=$(\'#ImgZoomInImage\').hide();$(\'#ImgZoomInBG\').hide(); style="cursor:pointer; display:none; position:absolute; z-index:10001;" />';
if ($('#ImgZoomInBG').length < 1) {
$('body').append(bgstr);
}
if ($('#ImgZoomInImage').length < 1) {
$('body').append(imgstr);
}
else {
$('#ImgZoomInImage').attr('src', $(this).attr('src'));
}
//alert($(window).scrollLeft());
//alert( $(window).scrollTop());
$('#ImgZoomInImage').css('left', $(window).scrollLeft() + ($(window).width() - $('#ImgZoomInImage').width()) / 2);
$('#ImgZoomInImage').css('top', $(window).scrollTop() + ($(window).height() - $('#ImgZoomInImage').height()) / 2);
$('#ImgZoomInBG').show();
$('#ImgZoomInImage').show();
};
$(document).ready(function () {
$("#imgTest").bind("click", function () {
$(this).ImgZoomIn();
});
});
</script>
</head>
<body>
<div>
<!--第一种写法-->
<img class="exampleImg" src="images/03.jpg" id="imgTest"/>
<!--第二种写法-->
<img class="exampleImg" src="images/p1_nav2.png" onClick="$(this).ImgZoomIn();"/>
</div>
</body>
</html>

3. Fähigkeiten

Da das mobile Endgerät keine Hotspots hinzufügen kann, besteht die endgültige Lösung darin, vier a-Tags zu verwenden, um die obere linke Ecke, die obere rechte Ecke, die untere linke Ecke und die untere rechte Ecke zu lokalisieren.

<dl>
 <dd style="display:block;">
  <img src="images/four-duche.jpg" onClick="$(this).ImgZoomIn();">
  <a href="javascript:;" src="images/11.jpg" class="topleft" onClick="$(this).ImgZoomIn();"></a>
  <a href="javascript:;" src="images/12.jpg" class="topright" onClick="$(this).ImgZoomIn();"></a>
  <a href="javascript:;" src="images/13.jpg" class="bottomleft" onClick="$(this).ImgZoomIn();"></a>
  <a href="javascript:;" src="images/14.jpg" class="bottomright" onClick="$(this).ImgZoomIn();"></a>
 </dd>
 ...
</dl>
css
.topleft,.topright,.bottomleft,.bottomright{
 width:50%;
 height:50%;
 position:absolute;
}
.topleft{
 /*background-color:red;*/
 top:0;
 left:0;
}
.topright{
 /*background-color:green;*/
 top:0;
 right:0;
}
.bottomleft{
 /*background-color:blue;*/
 bottom:0;
 left:0;
}
.bottomright{
 /*background-color:yellow;*/
 bottom:0;
 right:0;
}

PS: Mobile Bilder auf mobilen Websites implementieren verzögertes Laden

Aufgrund der Einschränkungen der Kosteneffizienz inländischer Telekommunikationsnetze und der Unterschiede in den Verarbeitungsmöglichkeiten von Mobiltelefonen ist beim Entwerfen einer drahtlosen Anwendung

zu berücksichtigen

Die Einsparung von Datenverkehr für Benutzer ist ein sehr wichtiger Gesichtspunkt. Wahrscheinlich sollte jedes Byte für den Client gespeichert werden.

Die Einsparung von Verkehr kann sich auf folgende Aspekte konzentrieren:

1. Verwenden Sie den Cache, z. B. die Verwendung des lokalen Browserspeichers, der bereits besprochen wurde

2. Ladecode verzögern (Bodenerkennung, Daten über die Schnittstelle abrufen)

3. Verzögertes Laden von Ressourcen, Bilder erscheinen im sichtbaren Bereich und werden dann geladen (ohne Berücksichtigung der automatischen Wiedergabe), Audio und Video werden entsprechend den Benutzerklicks geladen.

Heute werde ich kurz darüber sprechen, wie man das verzögerte Laden von Bildern implementiert.

Beispiele basierend auf jQuery und jQuery Mobile

Prinzip: Der Benutzer verschiebt den Bildschirm und das Scrollen des Bildschirms endet (verwenden Sie das von jQuery bereitgestellte Fenster-Scrollstop-Ereignis entsprechend), um das Bild zu erkennen, das im Ansichtsfenster angezeigt wird.

Ersetzen Sie einfach das echte src-Attribut des Bildes.

Tipp: Stellen Sie eine Verzögerung von einer Sekunde ein. Basierend auf der aktuellen Netzwerkumgebung kann eine Verzögerung von einer Sekunde darauf hinweisen, dass der Benutzer dies wirklich möchte den Inhalt ansehen. Freunde, die WeChat nutzen, können dies sorgfältig erleben.

Aufgrund der Uhrsteuerung wird eine große Anzahl von Anfragen nicht ausgegeben, wenn der Benutzer häufig und schnell den Bildschirm umdreht.

Hauptcode:

var refreshTimer = null,
 mebook = mebook || {};
/*
*滚动结束 屏幕静止一秒后检测哪些图片出现在viewport中
*和PC端不同 由于无线速度限制 和手机运算能力的差异 1秒钟的延迟对手机端的用户来说可以忍受
*/
$(window).on('scrollstop', function () {
 if (refreshTimer) {
 clearTimeout(refreshTimer);
 refreshTimer = null;
 }
 refreshTimer = setTimeout(refreshAll, 1e3);
});
$.belowthefold = function (element) {
  var fold = $(window).height() + $(window).scrollTop();
  return fold <= $(element).offset().top;
};
$.abovethetop = function (element) {
  var top = $(window).scrollTop();
  return top >= $(element).offset().top + $(element).height();
};
/*
*判断元素是否出现在viewport中 依赖于上两个扩展方法 
*/
$.inViewport = function (element) {
  return !$.belowthefold(element) && !$.abovethetop(element)
};
mebook.getInViewportList = function () {
  var list = $('#bookList li'),
    ret = [];
  list.each(function (i) {
    var li = list.eq(i);
    if ($.inViewport(li)) {
      mebook.loadImg(li);
    }
  });
};
mebook.loadImg = function (li) {
  if (li.find('img[_src]').length) {
    var img = li.find('img[_src]'),
      src = img.attr('_src');
    img.attr('src', src).load(function () {
      img.removeAttr('_src');
    });
  }
};
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn