Проблема с Flip
Все работает отлично хорошо.Вот только сама прокрутка происходит по центру экрана.Тоесть не там где изначально создан этот <div id="flipBox"> а выше на экране.Неподскажите почему?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript" src="jquery.flip.min.js"></script>
<script type="text/javascript">
function Flip(){
jQuery(document).ready(function(){
jQuery("#flipBox").flip({
direction:"rl",
color:"#539127",
content: 'новый текст'
});
});
}
</script>
</script>
</head>
<body>
<form onsubmit="return false">
<div id="divi">
<div id="queston"></div>
</div>
<button id='send' name='send' onclick='checkAnswer()' >Проверить</button>
<button id="id1" type='reset'>Стереть Ответы</button>
<button id="id2" type='reset'>Начать тест заново</button>
<button id="id3" onclick="TrueAnswer()" >Показать правильный ответ</button>
<div><input style="width:200px; height:50px" type="text" id="output" readonly></input></div>
</form>
<div id="id4" onclick = "text()" style="border:5px solid black; width:100px ;height:100px">Здесь ваш текст</div>
<div id="animation" style="width:100px;height:100px;background:Black;color:White;text-align:center;" onclick="animate()" >Word</div>
<div id="flipBox" style="border:5px solid black; width:100px ;height:100px" onclick="Flip()">
Будем кувыркаться!
</div>
</body>
</html>
Но а если я делаю вот так
function Flip(){
$(document).ready(function(){
$("#id5").flip({
direction:"rl",
color:"#539127",
speed: 100,
content: 'новый текст'
});
});
}
<body>
<div id="id5" style="border:5px solid black; width:100px ;height:100px;background:#539127" onclick="Flip()">Что-то</div>
</body>
То все работает отлично и крутитса <div> в томже месте.Почему действие одно и тоже а выполняетса немного по другому? И подскажите пожалуста.Как при повторном нажатии стили возвращались на первоначальные.Тоесть что-бы при повторном нажатии стили были не которые я указал здесь color:"#539127", content: 'новый текст' А стили и текст которые были здесь <div id="id5" style="border:5px solid black; width:100px ;height:100px;background:#539127" onclick="Flip()">Что-то</div> |
Вместо последний части -
function Flip(){
var $el = $("#id5");
$el.flip({
direction:"rl",
color:"#539127",
speed: 100,
content: 'новый текст',
onEnd: function() {
var $el = $("#id5");
$el.bind("click", function() {
var $el = $(this);
$el.attr("style", "");
$el.unbind("click");
});
}
});
}
<body>
<div id="id5" style="border:5px solid black; width:100px ;height:100px;background:#539127" onclick="Flip">Что-то</div>
</body>
|
Цитата:
|
Не совсем понял какие стили нужны после второго нажатия. Возможно нужно заменить это:
$el.attr("style", "");
На это
$el.attr("style", "border:5px solid black; width:100px;height:100px;background:#539127");
|
да нужны первоначальные стили <div>. а подругому кроме как явно задать стили,нельзя получать их из <div>?и текст который находитса в <div>.Тоесть все первоначальные параметры самого <div> стили и текст.
|
Можно суда div до и div после, со всей нужней информацией?
|
Вот это div до
<div id="id5" style="border:5px solid black; width:100px ;height:100px;background:#539127" onclick="Flip">Что-то</div> А после нажатия стили меняютса на указанные во Flip
color:"#539127",
content: 'новый текст'
|
а ище вопрос,пробовал подгребать стили из xml документа,но не хочет их воспринимать тоесть вместо
color:"#539127",
content: 'новый текст'
пробовал вытаскивать стили из xml документа но флип их невоспринял.можно как-то зделать парсинг стилей из xml? и ище допустим имеетса несколько <div> для которых нужно использовать Flip получаетса что для каждого отдельного <div> нужно использовать отдельный флип?Тогда если я хочу все стили которые будут использоватса во Flip задавать явно(ну явно заберать из xml),а не с помощью функции,так как что-бы забирать с помощью функции нужны какието одинаковые теги в xml что-ли.Неподскажите ище можно ли как-то зделать 1 Flip для нескольких <div> сразу? |
<?xml version="1.0" encoding="UTF-8" ?> <style> <class1><selector>p</selector><rule>color:Yellow</rule></class1> </style>
var pullStyles = (function() {
var xmlFile = {};
function loadXML() {
var xml = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xml.onreadystatechange = function() {
if(xml.readyState === 4) {
xmlFile = xml.responseXML;
displayXML();
}
}
xml.open("GET", "coolstuff.xml", true);
xml.send();
}
function displayXML() {
var styleEl = document.createElement("style"),
styleObject = "",
children = xmlFile.documentElement.childNodes,
textMode = (typeof children[0].textContent !== "undefined") ? "textContent" : "text",
ruleMode = "";
styleEl.type = "text/css";
document.getElementsByTagName("head")[0].appendChild(styleEl);
styleObject = document.styleSheets.item(0);
ruleMode = (styleObject.addRule) ? "addRule" : "insertRule";
for(var i = 0, leng = children.length; i < leng; i++) {
if(children[i].nodeType === 1) {
if(ruleMode === "addRule") {
styleObject.addRule(children[i].childNodes[0][textMode], children[i].childNodes[1][textMode]);
}
else {
styleObject.insertRule(children[i].childNodes[0][textMode] + "{" + children[i].childNodes[1][textMode] + "}", 0);
}
}
}
}
return loadXML;
})();
Вот скрипт. Проблема в том что, я совершенно не понимаю зачем стили держать в xml? Для того чтобы применить флип к нескольким элементам -
$("#flipbox, #flipbox2").flip({
direction:'tb',
content:'this is my new content'
});
|
в xml держать стили и все такое для того что-бы можно было менять стили не входя в код и не рыская по нему..
а не могли бы обьяснить что здесь происходит
for(var i = 0, leng = children.length; i < leng; i++) {
if(children[i].nodeType === 1) {
if(ruleMode === "addRule") {
styleObject.addRule(children[i].childNodes[0][textMode], children[i].childNodes[1][textMode]);
}
else {
styleObject.insertRule(children[i].childNodes[0][textMode] + "{" + children[i].childNodes[1][textMode] + "}", 0);
}
}
}
получаетса вы прохоите по всем детям <style>,а что дальше? и зачем вот это?зачем добавлять созданный элемент типа стиль в head?
document.getElementsByTagName("head")[0].appendChild(styleEl);
и да ну получил я из xml а как на страницу то нарисовать его? немогли бы немного обьяснить код,и обьяснить как же всетаки его использовать к флипу?ну что-бы по нажатию там забирались какието стили и все такое? Я так понимаю это просто парсинг xml документа? |
| Часовой пояс GMT +3, время: 06:46. |