我是堆栈溢出和编程的新手,请原谅我任何尴尬的措辞!
我正在建立一个横向滚动的网站,图形丰富,大小为680x9400像素.我将使用一些javascript和/或mootools来创建一个很酷的横向滚动效果,类似于http://sursly.com.
我是网络优化所有使用的图像,但想知道是否有人有任何其他想法如何加快页面加载?有没有办法在水平部分预加载网站?
提前致谢.
我想得到类的变量名.
var Poop = new Class({
getClassName: function() {
return arguments.callee._owner.name;
}
});
var a = new Poop();
a.getClassName(); //want 'Poop'
Run Code Online (Sandbox Code Playgroud)
我正在将其实现到其他类中,并且我想构建一个使用表名的类名(复数)的SQL查询.
我尝试了上面例子的各种组合来试图获得名称,并且无法弄明白(如果它甚至可以考虑MooTools类系统).
如何通过抛出变量名来实例化一个类?在类中考虑这个方法:
animate: function(el, build) {
console.log(build.effect);
var animationClass = new build.effect(el,build);
},
Run Code Online (Sandbox Code Playgroud)
构建是一个包含大量内容的对象,但最重要的是"效果".此效果是独立动画类的名称 - 一个名为"MarioKartMenu".
console.log(build.effect)打印出"MarioKartMenu".但当然我得到:TypeError:表达式'build.effect'的结果[MarioKartMenu]不是构造函数.
如果我摒弃了动力,只需要制作代码:
animate: function(el, build) {
var animationClass = new MarioKartMenu(el,build);
},
Run Code Online (Sandbox Code Playgroud)
它工作得很好.是否有可能让它像我试图做的那样充满活力?
我创建了一个脚本(使用mootools库),该脚本应该用表格网格覆盖图像,当每个网格单元格被单击/拖动到其背景颜色时,会更改"突出显示"单元格.
当前代码创建一个表并将其定位在元素上(在本例中为el,image).由于我计划稍后添加矩形选择工具,因此使用了表,这似乎是最简单的方法.
<html>
<head>
<title></title>
<script type="text/javascript" src="mootools.js"></script>
<script type="text/javascript">
var SetGrid = function(el, sz, nr, nc){
//get number of rows/columns according to the 'grid' size
numcols = el.getSize().x/sz;
numrows = el.getSize().y/sz;
//create table element for injecting cols/rows
var gridTable = new Element('table', {
'id' : 'gridTable',
'styles' : {
'width' : el.getSize().x,
'height' : el.getSize().y,
'top' : el.getCoordinates().top,
'left' : el.getCoordinates().left
}
});
//inject rows/cols into gridTable
for (row = 1; row<=numrows; row++){
thisRow = new Element('tr', {
'id' …Run Code Online (Sandbox Code Playgroud) 我想动态添加一些预先配置的HTML元素,使用mootools的'click'事件.
因此,我可以使用我的基本知识,虽然它不是很漂亮.我到目前为止编码了这个......
这是我预先配置的元素,包含一些文本,一个类名和一些事件,因为我想要添加事件,当它插入我的容器时:
var label = new Element('label', {
'text': 'Label',
'class': 'label',
'events': {
'click': function(el){
alert('click');
}
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的函数,它添加了标签元素:
function addText(){
$('fb-buildit').addEvent('click', function(){
row.adopt(label, textinput, deletebtn);
$('the-form').adopt(row.clone());
row.empty();
/*
label.clone().inject($('the-form'));
textinput.inject($('the-form'));
deletebtn.inject($('the-form'));
*/
});
}
Run Code Online (Sandbox Code Playgroud)
第二部分使用注入也有效,但在那里,我的点击事件,它触发"警报('点击')"也有效.当它插入dom时,采用的方法不会向我的标签Object添加任何事件.
谁能帮我这个.我只是想知道为什么adobt忽略了我的"事件"设置而没有注入.
提前致谢.
(对不起我的英文^^)
我花了最近几天研究了一种在MooTools类中拥有私有或受保护属性的方法.各种文章(即Sean McArthur 在MooTools类中获取私有变量)为MooTools的弃用版本提供了一种方法,但我无法找到MooTools 1.3+的工作方法.
今天,在玩了几个小时的代码后,我想我已经创建了一个合适的解决方案.我说"思考",因为我真的不是一个经验丰富的程序员.我希望这里的社区可以查看我的代码并告诉我它是否真的是一个有效的解决方案,或者是hackjob仿真.
var TestObj = (function() {
var _privateStaticFunction = function() { }
return new Class({
/* closure */
_privates: (function() {
return function(key, val) {
if (typeof(this._data) == 'undefined') this._data = {};
/* if no key specified, return */
if (typeof(key) == 'undefined') return;
/* if no value specified, return _data[key] */
else if (typeof(val) == 'undefined') {
if (typeof(this._data[key]) != 'undefined') return this._data[key];
else return;
}
/* if second argument, …Run Code Online (Sandbox Code Playgroud) 我试图将JQuery lib包含在joomla中,但它不起作用.许多comps和模块在我的CMS中使用mootools.我认为问题是两个框架之间的冲突.
我搜索了互联网,发现了一些文章,但以下代码仍未按预期工作.
<?php
JHTML::stylesheet('demo_page.css', 'media/system/css/');
JHTML::stylesheet('ftab.css', 'media/system/css/');
JHTML::stylesheet('demo_table.css', 'media/system/css/');
$option="com_mycomp";
$base=JUri::root().'components/'.$option.'/js/';
$document=&JFactory::getDocument();
$noConflict="jQuery.noConflict();";
//$document->addScriptDeclaration($noConflict);
$document->addScriptDeclaration("jQuery(document).ready(function($){jQuery('#example').dataTable();});");
JHTML::script('jquery.js',$base,true);
$document->addScript($base,'jquery.js');
$document->addScript($base,'jquery.dataTables.js');
?>
Run Code Online (Sandbox Code Playgroud)
这应该使用JQuery对我的表进行排序,但事实并非如此.
如何在joomla中同时使用mootools和jQuery?
预先感谢您的帮助!
我计划在我的一个项目中使用持久性localStorage,我发现大小限制为5 MB(chrome).我搜索了其他框架,其中包含了同样的东西,如Mootools,Dojo,Lawnchair,但我无法找出它们的大小限制.
有谁知道这些中的尺寸限制是什么.还有哪些其他选项可以使用,如果不是上面已经说过的那个.
我今天想到可能有些javascript老人可以回答.
在Mootools中创建多个类的估计DOM开销是多少?
良好的OO设计要求任何可重复使用的代码都应该属于Class.但是,由于mootools中每个创建的类都明确地继承自"Class",因此它当然会得到很多额外的实例化.
所以我的 - 或多或少的哲学 - 问题是,这会影响浏览器中的性能,因为所有代码都是在onload上实例化的,并且与简单对象相比,例如使用数组中有数百或数千个类的DTO模式.
笨拙地,迈克尔
自升级到Chrome 41.0.2272.89 m以来,Mootools Core 1.5.1正在发出警告.没什么大不了的,但是如果你像我一样有保障,那可能会让你感到有点不舒服.
var input = document.createElement('input'), volatileInputValue, html5InputSupport;
// #2178
input.value = 't';
input.type = 'submit';
volatileInputValue = input.value != 't';
// #2443 - IE throws "Invalid Argument" when trying to use html5 input types
try {
input.type = 'email';
html5InputSupport = input.type == 'email';
} catch(e){}
Run Code Online (Sandbox Code Playgroud)
抛出警告:
指定值"t"不是有效的电子邮件地址.
mootools ×10
javascript ×8
dojo ×1
dom ×1
elements ×1
events ×1
frameworks ×1
inject ×1
jquery ×1
mysql ×1
oop ×1
pageload ×1
performance ×1
web ×1