我有一个一页网站,在其中使用此脚本来延迟加载图像: http: //appelsiini.net/projects/lazyload
现在,我还在该页面上有锚链接,例如#footer. 启用脚本后,指向延迟加载图像下方位置的锚链接会中断,因为加载图像时,内容会被下推。
因此,不知何故,位置需要重新计算,但我无法理解这背后的技术。我发现 Mozilla 的错误报告存在完全相同的问题:https://bugzilla.mozilla.org/show_bug.cgi? id=718321,但我仍然无法理解他们是如何解决它的。在这里查看他们的 Git 更改日志实际上显示了他们如何解决该问题,但因为我不了解必要的步骤,所以无法重新创建该问题。
即使启用了延迟加载,如何重新计算锚点位置以使锚点链接再次工作?
是否可以在Less中划分两个变量?
喜欢@varA = @varB / @varC;吗?
我已经尝试过转义,但是输出不是我所需要的。
我想将一个简单的投影应用于SVG文件.由于这是我第一次深入SVG过滤器,我陷入困境,无法找到(可能是简单的)问题的解决方案:为什么feColorMatrix不应用于阴影?
这是过滤器:
<defs>
<filter id="drop-shadow" filterUnits="userSpaceOnUse" width="120" height="120">
<feGaussianBlur in="SourceAlpha" result="blur-out" stdDeviation="1" />
<feOffset in="blur-out" result="the-shadow" dx="0" dy="1"/>
<feColorMatrix in="the-shadow" result="color-out" type="matrix"
values="0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0.1 0"/>
<feBlend in="SourceGraphic" in2="the-shadow" mode="normal"/>
</filter>
</defs>
Run Code Online (Sandbox Code Playgroud)
此外,FireFox可能会忽略feOffset吗?或者语法有问题吗?
另外:在所有浏览器中,投影似乎都会在顶部和左侧被剪掉.svg(在img标签中)是22px x 22px大,我已经扩大了viewBox:
<svg version="1.1" id="Layer_1"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" width="22px" height="22px" viewBox="0 0 24 24" enable-background="new 0 0 24 24"
xml:space="preserve">
Run Code Online (Sandbox Code Playgroud)
但仍然没有运气.在我的CSS文件 …
我希望背景图像覆盖整个可用空间而不会被压扁.
实际上我认为这是什么意思background-size,但我想我做错了,因为它不起作用,请帮助我.
HTML
<div class="myDiv">
<p class="paragraph">Lorem Ipsum</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
body {
background-color: black;
}
.myDiv {
color: white;
background: url('http://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png') no-repeat center center fixed;
background-size: cover;
}
Run Code Online (Sandbox Code Playgroud)
FIDDLE
http://jsfiddle.net/V7KSb/
我现在使用Zend Framework 2已有一段时间了.不过,我真的不了解它的结构和组件.这很可能是因为我对PHP和相关模式的一般了解.
特别是:
什么是服务?
我知道框架的一个中心设计模式是服务定位器模式,但我还没有真正掌握服务的内容.此外,当人们谈论"实施服务层"时,人们的意思是什么?
什么是插件?
我认为在Zend Framework 2中,正确的术语是"控制器插件".据我所知,它可能只是一个包装器,一个提供一个很好的api用于控制器的类.
示例:它们不是一次又一次地调用相同的10行代码,而是可以包含在一个控制器插件中,该插件包含封装这10行的方法,因此可以通过一个方法调用完成同样的操作.它是否正确?
如果它是正确的:我为什么要将代码封装在一个插件中,我不能在没有插件的情况下将它添加到控制器中吗?
使用 HTML5 约束验证 API 来验证表单字段type="email",我注意到 Chrome 接受“aa@a”作为正确的电子邮件地址。
这样做的目的是什么 - 这是一个错误吗?定义自定义模式是不好的做法吗?
我只是围绕着OOCSS方法.我认为它使一切更容易理解,我也尝试使用BEM命名约定.
使用这个原则,我试图为主页创建一个导航 - 基本上只是一个内联列表.由于OOCSS是关于抽象的,我到目前为止创建了这个CSS:
.horizontal-list {
padding: 0;
list-style: none;
}
.horizontal-list__item {
display: inline;
}
Run Code Online (Sandbox Code Playgroud)
我尝试不使用类名,nav或者navigation在应用皮肤之前首先尝试布局结构 - 这就是我的实际问题开始的地方.
要添加一些颜色,更改字体大小等,我可能只是将其添加为修饰符之类的.horizontal-list--nav.另一个修饰符可以用于面包屑导航:.horizontal-list--breadcrumb.它会这样吗?
对我来说它是合乎逻辑的,因为文本颜色与列表本身无关,但是列表是例如面包屑,但我不确定我是否从错误的方向接近了这个东西.
此外,该列表的HTML将如下所示:
<ul class="horizontal-list">
<li class="horizontal-list__item"><a href="#">Link</a></li>
<li class="horizontal-list__item"><a href="#">Link</a></li>
<li class="horizontal-list__item"><a href="#">Link</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
这li是一个horizontal-list明确的元素.但是a嵌入其中的li是什么,我如何标记呢?根据OOCSS原则,我不应该这样做
.horizontal-list__item a {
color: white;
}
Run Code Online (Sandbox Code Playgroud)
对?但是在horizontal-list__item__item某种程度上添加一个类似乎也是错误的.我该怎么做?
我正在启动一个新项目。我问自己:我为什么要添加font-size: 100%上html元素时,我使用的em单位呢?
这100%与什么 - 100%相比?
我正在尝试使用纯JavaScript编写一个简单的滑块.由于这些是我使用对象原型并遵循面向对象方法的第一步,有时候我很困惑,所以请耐心等待.
这是我有的:
function MySlider(noOfSlides, startSlide){
this.noOfSlides = noOfSlides;
this.startSlide = startSlide;
this.currentSlide = this.startSlide;
}
MySlider.prototype.nextSlide = function(){
this.currentSlide++;
console.log(this.currentSlide);
return this.currentSlide;
};
MySlider.prototype.startSlider = function(){
setInterval(function(){
MySlider.nextSlide();
}, 2000);
};
var slides = new MySlider(4, 1);
document.getElementById("button").addEventListener("click", function(){
slides.startSlider();
}, false);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是行不通的,经过2秒等待因为setInterval,我得到以下错误:TypeError: MySlider.nextSlide is not a function.
虽然我明白问题是什么,但我不知道该改变什么.我已经试过了this.nextSlide()但是那也没用.我的猜测是它与原型链有关,但我仍然试图理解这一点.
如何解决这个问题呢?或者这样一般来说这是一个坏主意吗?
在学习如何编写一个好的JavaScript插件时,我正在研究Twitter Bootstrap(使用jQuery)中的JavaScript文件.
该崩溃插件的开头有这样的代码:
var Collapse = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, Collapse.DEFAULTS, options)
this.transitioning = null
if (this.options.parent) this.$parent = $(this.options.parent)
if (this.options.toggle) this.toggle()
}
Collapse.DEFAULTS = {
toggle: true
}
Run Code Online (Sandbox Code Playgroud)
var Collapse = function似乎是设置一些变量的构造函数,包括对象this.options.这似乎是默认选项和传递给函数的自定义选项的合并,因此自定义选项会覆盖/添加到默认值.
这就是我的理解 - 我不明白为什么包含默认选项的对象名称是用大写字母写的:Collapse.DEFAULTS?这是不变的吗?
css ×4
html ×3
javascript ×2
jquery ×2
anchor ×1
bem ×1
constraints ×1
forms ×1
hyperlink ×1
lazy-loading ×1
less ×1
oocss ×1
php ×1
plugins ×1
prototype ×1
svg ×1
svg-filters ×1
validation ×1