Я пытаюсь определить высоту div
, которая является динамической, в зависимости от размера текста. Я пытался установить это динамически в CSS как свой первоначальный вопрос https://stackoverflow.com/info/24150538/defining-a-height-in-css-for-animation-keyframe-within-itself?noredirect=1#comment37269329_24150538.
Теперь мне кажется, что есть JQuery, который может позволить вам сделать это в https://github.com/jQueryKeyframes/jQuery.Keyframes. Поэтому я выполнил их пример и удалил keyframe
в моем CSS
файле и включил его в script, как в следующем фрагменте кода:
<body>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="/pathToFile/jquery.keyframes.min.js"></script>
<div id="test"> hello</div>
<script>
var supportedFlag = $.keyframe.isSupported();
$.keyframe.define([{
name: 'myfirst',
'0%': {top:$("#test").innerHeight()*-1; left:0px},
'50%': {top:100%; left:0px},
'100%': {top:$("#test").innerHeight()*-1; left:0px}
}]);
$(selector).playKeyframe({
name: 'myfirst', // name of the keyframe you want to bind to the selected element
duration: 90, // [optional, default: 0, in ms] how long you want it to last in milliseconds
timingFunction: 'linear', // [optional, default: ease] specifies the speed curve of the animation
delay: 0, //[optional, default: 0, in ms] how long you want to wait before the animation starts in milliseconds, default value is 0
repeat: 'infinite', //[optional, default:1] how many times you want the animation to repeat, default value is 1
direction: 'alternate', //[optional, default: 'normal'] which direction you want the frames to flow, default value is normal
fillMode: 'running', //[optional, default: 'forward'] how to apply the styles outside the animation time, default value is forwards
complete: function(){} //[optional] Function fired after the animation is complete. If repeat is infinite, the function will be fired every time the animation is restarted.
});
</script>
</body>
Мой CSS:
#test{
height: auto;
width: 100%;
position: relative;
}
Я хотел бы знать, почему это не работает.