suchen
HeimWeb-FrontendLayui-TutorialEinführung in die Feinabstimmung der Quellcodekompatibilität des Laui-Frameworks

Layui bietet eine Fülle integrierter Module, die alle bei Bedarf modular geladen werden können. Dieses Tutorial bietet Ihnen eine Einführung in die Feinabstimmung der Quellcode-Kompatibilität des Layui-Frameworks Lösen Sie die Probleme, die bei der Verwendung des Layui-Frameworks auftreten.

Einführung in die Feinabstimmung der Quellcodekompatibilität des Laui-Frameworks

table.js

1. Beschreibung: [Alle Browser] Das Ladesymbol ist statisch und möchte animiert werden.

Lösung: Suchen Sie jedes „layui-icon-loading“ und fügen Sie „layui-animlayui-anim-rotatelayui-anim-loop“ hinzu

2. Beschreibung: [Firefox und IE10+] Wenn Wenn die Zelle aus reinem Text besteht, muss die Anzahl der ausgelassenen Wörter am Ende mehr als 3 Zeichen betragen, bevor das Popup-Fenster „layer.tips“ geöffnet wird.

Lösung: Da „scrollWidth“ intern verwendet wird, unterscheidet sich seine Leistung in diesen beiden Programmen von der von Google.

Berechnen Sie nun die Pixel, indem Sie die interne Textlänge berechnen

// 源码 table.js 1600 左右开始
var othis = $(this)
,elemCell = othis.children(ELEM_CELL);
// m
var computedFontWidth = function() {
  var fontSize = parseFloat(elemCell.css('font-size'))
  var text = elemCell.text()
  var width = 0, i = 0, len = text.length
  while ( i < len) {
    // 基础像素,我的是 14px,不知道可以看 html 或者 body 内的字体大小设置。
    // 火狐和IE中字体的长度就是双字节文字按基础像素计算,单字节文字接触像素/2。
    // 谷歌比较另类,双字节文字按基础像素计算,单字节是基础像素/2与 16/2 的差值,
    // 不知道是不是我想复杂了,所以用 +1,微调下浏览器的差异
    width += text.charAt(i).match(/[^\x00-\xff]/ig) != null ? fontSize : (fontSize / 2 + 1)
    i++
   }
  return width
}

var computedScrollWidth = function() {
  var hasChildren = elemCell.children().length > 0
  var originScrollWidth = elemCell.prop(&#39;scrollWidth&#39;)
  var realScrollWidth = hasChildren 
    ? 0
    : (computedFontWidth() + parseFloat(elemCell.css(&#39;padding-left&#39;)) + parseFloat(elemCell.css(&#39;padding-right&#39;)))
  // 这里比较大小值,为了对于原来非纯文本还是采用 layui 原本的方式
  return Math.max(originScrollWidth, realScrollWidth)
}

if(hide){
  othis.find(&#39;.layui-table-grid-down&#39;).remove();
// } else if(elemCell.prop(&#39;scrollWidth&#39;) > elemCell.outerWidth()){ // 注释掉原本的代码
} else if(computedScrollWidth() > elemCell.outerWidth()){
  if(elemCell.find(&#39;.&#39;+ ELEM_GRID_DOWN)[0]) return;
  othis.append(&#39;<div class="&#39;+ ELEM_GRID_DOWN +&#39;"><i class="layui-icon layui-icon-down"></i></div>&#39;);
}

form.js

1. Beschreibung: [Alle Browser] Positionierung von select, wenn select im Projekt ist Ganz rechts, in der unteren rechten Ecke, wird durch Klicken eine Bildlaufleiste auf der nicht scrollbaren Seite angezeigt

Lösung:

// 修改部分定位写法
var showDown = function(){
  // 将样式复位
  dl.css({
    top: &#39;&#39;,
    left: &#39;&#39;,
    right: &#39;&#39;
  })
  var top = reElem.offset().top + reElem.outerHeight() + 5 - $win.scrollTop()
  ,dlHeight = dl.outerHeight(), dlWidth = dl.outerWidth(), winWidth = $(window).width();
 
  index = select[0].selectedIndex; //获取最新的 selectedIndex

   // 判断是否在最右边的临界点
  if (dlWidth + reElem.offset().left > winWidth) {
    dl.css({
      left: &#39;auto&#39;,
      right: 0
    })
  }
  reElem.addClass(CLASS+&#39;ed&#39;);
  dds.removeClass(HIDE);
  nearElem = null;
  
  //初始选中样式
  dds.eq(index).addClass(THIS).siblings().removeClass(THIS);

  //上下定位识别
  if(top + dlHeight > $win.height() && top >= dlHeight){
    reElem.addClass(CLASS + &#39;up&#39;);
  } else {
    // 定位重写定义
  
    // 动画需要的距离和弹窗的间隔,这是根据 layui 的样式来的,理论应该计算
    var ANIM_UP = 30, SPACE = 5; 
    var reElemBottom = reElem.get(0).getBoundingClientRect().bottom;
    var dlTop = parseInt(dl.css(&#39;top&#39;));
    var winHeight = $win.height();
    if (reElemBottom + dlHeight + ANIM_UP > winHeight ) {
      var computeValue = dlTop - (reElemBottom + SPACE - (winHeight - dlHeight - ANIM_UP))
      dl.css(&#39;top&#39;, computeValue)
    }
  }
  followScroll();
}

tree.js

Beschreibung : Ich verwende die Laui2.4.5-Version, die interne Baumfunktion wurde erfüllt, aber aufgrund des Symbolproblems verstecke ich sie einfach hier

Lösung:

// 第一处修改
Tree.prototype.tree = function() {
   // 大概在 line 48
   var li = $([&#39;<li &#39;+ (hasChild ? " is-branch " : " is-leaf ") + (item.spread ? &#39;data-spread="&#39;+ item.spread +&#39;"&#39; : &#39;&#39;) +&#39;>&#39;
}

// 第二处修改

// 大概在 72 - 76 注释掉

/*+ (&#39;<i class="layui-icon layui-tree-&#39;+ (hasChild ? "branch" : "leaf") +&#39;">&#39;+ (
         hasChild ? ( item.spread ? icon.branch[1] : icon.branch[0]) : icon.leaf) +&#39;</i>&#39;) */ //节点图标

Für mehr Laui-Framework-Kenntnisse: Bitte beachten Sie das Layui-Framework-Tutorial.

Das obige ist der detaillierte Inhalt vonEinführung in die Feinabstimmung der Quellcodekompatibilität des Laui-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:fly社区. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Wie benutze ich das Flussmodul von Layui für das unendliche Scrollen?Wie benutze ich das Flussmodul von Layui für das unendliche Scrollen?Mar 18, 2025 pm 01:01 PM

In dem Artikel wird das Flow -Modul von Layui zum unendlichen Bildschirmrollen, Abdecken von Setup, Best Practices, Leistungsoptimierung und Anpassung für erweiterte Benutzererfahrung erläutert.

Wie kann ich das Aussehen und das Verhalten des Karussellmoduls von Layui anpassen?Wie kann ich das Aussehen und das Verhalten des Karussellmoduls von Layui anpassen?Mar 18, 2025 pm 12:59 PM

In dem Artikel wird das Anpassung des Karussellmoduls von Layui erörtert, der sich auf CSS- und JavaScript -Modifikationen für Aussehen und Verhalten konzentriert, einschließlich Übergangseffekten, Autoplay -Einstellungen und Hinzufügen benutzerdefinierter Navigationskontrollen.

Wie verwende ich das Karussellmodul von Layui, um Bildschieber zu erstellen?Wie verwende ich das Karussellmodul von Layui, um Bildschieber zu erstellen?Mar 18, 2025 pm 12:58 PM

Der Artikel führt zur Verwendung von Layui -Karussellmodul für Bildschieber, Detailschritte für Setup-, Anpassungsoptionen, Implementierung von Autoplay- und Navigationsstrategien sowie Leistungsoptimierungsstrategien.

Wie konfiguriere ich das Upload -Modul von Layui, um Dateitypen und -größen einzuschränken?Wie konfiguriere ich das Upload -Modul von Layui, um Dateitypen und -größen einzuschränken?Mar 18, 2025 pm 12:57 PM

In dem Artikel wird das Konfigurieren von Layui -Upload -Modul zur Einschränkung von Dateitypen und -größen mithilfe von Akzeptieren, Exts und Größeneigenschaften sowie Anpassung von Fehlermeldungen für Verstöße erläutert.

Wie verwende ich das Layui -Ebenenmodul, um modale Fenster und Dialogfelder zu erstellen?Wie verwende ich das Layui -Ebenenmodul, um modale Fenster und Dialogfelder zu erstellen?Mar 18, 2025 pm 12:46 PM

In dem Artikel wird erläutert, wie das Layui -Layer -Modul zum Erstellen modaler Fenster und Dialogfelder verwendet wird, um Setup, Typen, Anpassungen und gemeinsame Fallstricke zu vermeiden.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.