1. 程式人生 > >[jQuery]無法準確獲取隱藏元素(display:none)寬度(width)和高度(height)的新解決方案

[jQuery]無法準確獲取隱藏元素(display:none)寬度(width)和高度(height)的新解決方案

在開發一個彈框外掛時,遇到一個需要計算隱藏彈框的高度問題。用jquery裡面的方法$('box').outerHeight(true)得到隱藏層高度的值隨著滾動條滾動總是不一致。沒轍,放棄這一方法去獲取,原來生js中的offsetHeight來試試看,$(''box")[0].offsetHeight,毫無疑問得到的值總是0。

為解決這個老大難問題,在網上看到另一較好的解決方法新增擴充套件jquery物件原型方法actual

範例程式碼:

//get hidden element actual width
$('.hidden').actual('width');

//get hidden element actual innerWidth


$('.hidden').actual('innerWidth');

//get hidden element actual outerWidth
$('.hidden').actual('outerWidth');

//get hidden element actual outerWidth and set the `includeMargin` argument
$('.hidden').actual('outerWidth',{includeMargin:true});

//get hidden element actual height
$('.hidden').actual
('height');

//get hidden element actual innerHeight
$('.hidden').actual('innerHeight');

//get hidden element actual outerHeight
$('.hidden').actual('outerHeight');

// get hidden element actual outerHeight and set the `includeMargin` argument
$('.hidden').actual('outerHeight',{includeMargin:true
});

//if the page jumps or blinks, pass a attribute '{ absolute : true }'
//be very careful, you might get a wrong result depends on how you makrup your html and css
$('.hidden').actual('height',{absolute:true});

// if you use css3pie with a float element
// for example a rounded corner navigation menu you can also try to pass a attribute '{ clone : true }'
// please see demo/css3pie in action
$('.hidden').actual('width',{clone:true});


原碼如下並引入:

;( function ( $){
$.fn.addBack=$.fn.addBack || $.fn.andSelf;

$.fn.extend({

actual:function ( method,options){
// check if the jQuery method exist
if!this[method]){
throw'$.actual => The jQuery method "'+method+'" you called does not exist';
}

vardefaults={
absolute:false,
clone:false,
includeMargin:false
};

varconfigs=$.extenddefaults,options );

var$target=this.eq0 );
varfix,restore;

ifconfigs.clone===true){
fix=function(){

WebDriver 如何獲取頁面中的隱藏元素懸浮選單

在自動化測試過程中,由於javascript的使用,我們常常需要點選一些滑鼠經過顯示的選單等元素,這時需要觸發該元素的滑鼠經過事件。使用WebDriver有以下兩種實現。 比如,要點選Add New選單。但要先將滑鼠指向Posts才會顯示該選單。 1. 使用Antions [java] view p

overflow不一定能隱藏元素position:absolute

      為了頁面的健壯性,我們常常需要使用overflow:hidden。有時候是為了防止佈局被撐開,有時候是為了配合其它規則實現文字截斷,還有時候純粹是為了建立塊級上下文。        但是,很多人對這個屬性是存在著一定的誤解的,網上很多入門的資料或文章都只提到用overflow:hidden加固定

Android 按鍵防止過快點選防抖,在ButterKnife中的簡單解決方案

其實自己也在網上找了一些防抖的方案,比如RxBinding啊,NoDoubleClickListener啊,原始解決方案啊等等,不過那都不是我想要的。 因為專案中使用了ButterKnife繫結控制元件和為控制元件註冊點選事件。所以上面搜到的那些方案都不太好使

jQuery無法獲取隱藏元素的寬高

用jQuery寫一個通過點選左右圖示來翻閱圖片的小外掛,寫好後測試可以正常執行,但是放到Tab中後發現只有第一個Tab中的程式碼能夠正常執行,其它全部罷工了。  用Chrome自帶的開發工具一查,發現罷工的Tab中。小外掛一些重要元素的寬度都變成“0”了,因為這個小外掛需要計

jquery offset()獲取隱藏元素座標值始終為0

jquery offset().top獲取值為0:http://www.phpvar.com/archives/1822.html 這是之前網站上發過一篇文章,關於jquery offset()獲取隱藏元素座標值的問題,這裡要特別強調的是: jquery offset()、position()方法

javaScript顯示隱藏display屬性

javascript<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>display</t

jquery或者js獲取元素寬高精確到小數

OS 模式 idt alert 新版 老版本 保留 兼容ie rom 首先我們應該知道用jQuery的width()方法獲取元素的寬高及樣式屬性數值時,如果元素的屬性是浮點數,會自動四舍五入成整數。 而如果我們就是想獲取實際的帶小數的屬性數值時該用什麽方法。 在使用獲取

在go modules中使用replace替換無法直接獲取的packagegolang.org/x/...

報錯 href 操作 ast med tag 無法 獲取 技術分享 上一篇裏我們介紹了使用go get進行包管理。 不過因為某些未知原因,並不是所有的包都能直接用go get獲取到,這時我們就需要使用go modules的replace功能了。(當然大部分問題掛個梯子就能解

php獲取兩個陣列相同的元素交集以及比較兩個陣列中不同的元素差集

(一)php獲取兩個陣列相同元素   array  array_intersect(array  $array1, array $array2, [, array $...])       array  array_int

jquery ajax 獲取後臺資料 純文字

目的是為了拿到後臺資料(純文字) 通過ajax請求獲取到後臺資料 根據不同的到貨型別獲取 採購單位(後臺資料) 比較重要的是 jauery ajax 的引數用法: dataType 型別:String 預期伺服器返回的資料型別。如果不指定,jQuery 將自動根據 HT

獲取iframe中的內容、查詢獲取指定元素關於用c++呼叫WEBBROWSER控制元件,使用相關介面操作web頁面元素的一些方法)

最近開發WINDOWS下的應用程式,需要用到C++中呼叫WEBBROWSER控制元件操作網頁的相關技術,查閱了一下相關文件,反覆除錯了幾天,對其中的技術有了一些膚淺的認識,大多數C++程式設計師對COM應該不陌生,其實用C++操作網頁,在前端應用層上主要就是對COM介面的查

layer 獲取頁面層type:1元素

$('#refuse').on('click',function () { layer.open({ type:1, area:['50

SpringMVC的Restful中PUT無法獲取引數問題SSL設定

問題:使用SpringMVC的Restful風格構建服務時,呼叫PUT方法時無法獲取引數。 解決方法:在web.xml配置HttpPutFormContentFilter <!-- 隱藏的HttpMethod方法過濾器,表單提交中需要攜帶一個name=_method

獲取隱藏元素的尺寸

平時要獲取一個元素的尺寸一般都會直接使用offsetWidth和offsetHeight來獲取,但是這兩個屬性是通過CSS渲染到頁面上時候才計算的。而dispaly屬性為none的元素將不參與渲染,它不會在渲染環境中生成任何盒子,自然也無法從屬性中獲取到尺寸。  offse

thinkphp迴圈資料到頁面時,jquery$(this)動態獲取指定元素的資料

用tp框架在前端循輸出資料時遇到的情況 <foreach name="artData" item="vo"> <div class="article">

jQuery/Zepto.js獲取datalist元素指定option選項的屬性值

摘要 本文主要通過一個簡單示例,介紹了獲取datalist元素指定option選項屬性值的方法,同時提供了相關原始碼。 背景 頁面上有input元素及關聯的datalist的元素,datalist元

第四課:通過配置文件獲取對象Spring框架中的IOCDI的底層就是基於這樣的機制

ted const dex generate stat clas name 必須 nbsp 首先在D盤創建一個文件hero.txt,內容為:com.hero.Hero(此處必須是Hero的完整路徑) 接下來是Hero類 package com.hero; publi

笨辦法34訪問列表元素列表方法

第一個 相關 pre extend insert ins app 次數 col 列表方法,可以這樣調用: 對象.方法(參數) 相關內容詳見《python基礎教程》P39: 1.append 用於在列表末尾追加新的對象: >>> lst = [1, 2,

openfiler物理機web界面無法創建物理卷Physical volume問題

服務 fdisk -l 共享 tar eat creat success last 新網 當openfiler安裝環境為物理環境時,由於磁盤做了陣列,被認作為一塊磁盤,在安裝完後,在openfiler無法創建物理卷,點擊創建無反應,更改起始位和終止位大小也無濟於事。服務器在