alldo you knowneed to do is to know the causes of the

Tanya's Comprehensive Guide to Feline Chronic Kidney Disease - Everything
You Need to Know to Help Your Cat
COMPREHENSIVE GUIDE TO
FELINE CHRONIC KIDNEY
&This site is dedicated to my three
MISCELLANEOUS
Introduction
Hello, and welcome to my website, though I am sorry you need to be here.
My name is Helen. I have had three cats with CKD, Tanya, Thomas and Ollie
(their photos are above). I created this website because I know first hand
the shock and fear of the diagnosis, and how helpless it can make you
feel, and I wanted to give people the detailed, practical information
which would have helped me the first time I received the CKD diagnosis.
If your cat has also just been diagnosed
you are probably feeling shell-shocked and frightened.
may be in the midst of a crisis, perhaps on intravenous fluids (IV, or a
drip, or a flush) at the vet's.
If your cat has high bloodwork values, you may
not even have been offered any treatment, but
instead told that there is no hope and you
should just put your cat to sleep. Perhaps your
cat has had CKD for a while, but you are now realising
that you need to become more proactive if you want him or her to remain
well. Or maybe you've caught things early, but are anxious to find out all
you can about this disease so you can do all you can to keep your cat
stable. Whatever your
situation, please take a deep breath and don't give up
hope, because it may
well be possible to help
What is Kidney Disease?
There are two main kinds of kidney disease,
Chronic Kidney Disease,
abbreviated as CKD, and Acute Kidney Injury, abbreviated&as
Kidney disease used to be known as kidney failure, and you may therefore
see references in some of my links to Chronic Renal Failure (CRF), or
Acute Renal Failure (ARF). I used to use these expressions myself, but
these days the academic literature prefers the less scary and more
accurate expression, kidney disease, so that is what I use throughout the
AKI is a serious condition which usually comes on suddenly and which is
often triggered by a particular event or &insult&, such as your cat eating
something poisonous. Lilies and antifreeze are both extremely toxic to
cats and may cause AKI. AKI is usually treated with
intravenous fluids (IV fluids, also known as a
drip) and other
medications at the vet's and, although it is hard to treat, if the cat
survives the initial crisis, he/she can often regain much or sometimes all
of his/her normal kidney function.
CKD may also manifest itself very suddenly and require IV treatment at the
vet's, but in contrast to AKI it is an ongoing disease in which it is not
possible to regain
so the goal is to keep the
remaining function for as long as possible.
This site is primarily designed for people with a cat with the chronic
form of the disease (CKD), but may be of some use to those with a cat with AKI. Please visit the
page for more information.
&This site shares all the
information and tips I know, in great detail, in order to help your cat
feel better and hopefully extend his/her life.&I
am not a vet myself (though a lot of vets do recommend the site, see the
reviews ), just an ordinary person who has educated
herself about CKD in cats, so
possible I do
try to offer veterinary information to support what I say.
I try to share the information I have using layman's
language. My goals are to:
describe the symptoms
which you may be seeing now or which you may see&
explain what these symptoms and
your cat's test results may
discuss treatments which can often help,
many of which are not very expensive (the most commonly used treatments
can usually be obtained for around US$5 a week in total);
cover the emotional aspects of living with CKD and help you to cope with it, including at the end of
your CKD journey.&
The site provides information on an international basis,
aiming to help you wherever you happen to live, although in practice much
of the information relates to the USA and Europe since these are the areas
where the most information and treatments are available.&
Where to Start
This site is extremely
comprehensive, as you can see from the number of links in the sidebar on
the left. But don't panic, you won't need to learn about every single
Most people who arrive here for the first time have two
overwhelming concerns:
they want to know how severe their cat's case is.
they want to know how best to help their cat, and
I therefore recommend that you read these pages
- discusses the various stages of CKD in cats.
: discusses the various
scenarios you may face.
- the crucial issues to focus on in order to best help your cat. Don't
worry, it is highly unlikely that you will need to deal with all of them
These pages will get you started quickly so you can hit
the ground running. Then, later on, you can gradually get up to speed on
CKD in more detail. The
page provides a brief summary of the contents of each page,
so if you're not sure where to find something, check here, or just
check the sidebar on the left.
If Your Vet Has Recommended
Immediate Euthanasia
Please read the
page urgently.
Unfortunately, some vets are not overly familiar with the latest
treatments for CKD, and may recommend euthanasia prematurely. You need to
educate yourself and work out how severe your cat's case is before you
make this irrevocable decision.&&
My Three CKD Cats
This website is named in honour of Tanya, who was my
first CKD cat. Unfortunately Tanya did not receive as much proactive care
as Thomas and Ollie, because at the time that she was diagnosed (1998), I
did not know about the treatment options described on this website. I
tried desperately to find information to help her but I was not online, so
my options were limited. Once I got online, I vowed that nobody else
should have to go through that, so I created this website.
Thomas, in contrast, had much more severe CKD yet survived longer than
Tanya because he received more proactive treatment.
Ollie was a somewhat
different case: he came to me a week before his sixteenth birthday with relatively mild
CKD but with a host of other health problems which ultimately took him
You can read more about all of them
also read some
here, some of whom have survived for years with CKD. I
can't promise the same success for your cat, but in most cases it's
certainly worth a try.
Other Urinary Tract Problems
I sometimes hear from people whose cats have lower
urinary tract problems rather than kidney problems. Lower urinary tract
problems are relatively common in cats, but do not automatically lead to
kidney problems. So please be sure your cat has kidney issues before
deciding this is the website to help your cat, because treating for the
wrong condition is at best pointless and at worst dangerous.
If you are not sure, ask your vet if your cat has CKD
or another condition that would fall into the category of Feline Lower
Urinary Tract Disease (FLUTD). You can read about our experiences with
FLUTD, including a lifethreatening urinary tract blockage caused by
struvite crystals, with one of our other cats,& .
Is Chronic
Kidney Disease Terminal?
Sadly, yes, CKD is terminal. BUT that does not necessarily mean death is
imminent: it is often possible to buy the cat months or even years of
quality life. In fact, with appropriate treatment, quite a few CKD cats
not only live for a long time, they eventually die of other causes, with
the CKD firmly under control at the time of death.
An analogy used by my vet is that a CKD cat is approaching the edge of a
precipice: the cat may approach the precipice very slowly, taking years to
the cat may ap whichever way the cat
approaches the precipice, it may be possible to grab the cat and pull
him/her back even after he/ she has started to fall over the edge, and
this could be done several times if you move quickly enough.
The good news is there are almost certainly a few
things you can do to help your cat.
This site is geared towards slowing the progression towards the precipice,
and may also be able to help pull your cat back if he/she has started to
fall over the edge, while simultaneously trying to make the cat's
remaining time more comfortable. CKD cats can look very
ill at diagnosis, but improve dramatically with treatment, so I strongly
recommend trying treatments for a few weeks before considering euthanasia.
Good luck on
your CKD journey.
Need help and support?
Available online now, completely free of charge,
the support group allows you to talk to others fighting this disease
who can offer
help and support as you make your CKD journey.
Read more about
your details below to apply immediately. It will tell you you may have to
wait a few days for approval, but don't worry, most people are approved in
under two hours.
members log in here:
I have no financial interest in any products or services mentioned here,
nor do I accept advertisements. I neither solicit nor accept donations for
maintaining this site, because I can afford the running costs, and my time comes free.
If you would like to thank me in some
way, please:
pay me the compliment of telling your vet about this site, so
that other cats may benefit.
If you can afford it, you might also wish to
make a small donation to your local branch of Cats Protection (UK) or your
local shelter in memory of Tanya, Thomas and Ollie.
If you would prefer to
make a donation to fund CKD research, please click
If you would prefer that I benefit directly (as I know some of you do), you can
of this website.
But if funds are
tight right now and you need them to pay for your cat's care, please just
go and hug your cat (-:
REVIEWS AND AWARDS
&You might be
interested to know that I refer veterinarians to the
information on your site quite often.
It came up recently
regarding one of the experimental therapies and
I just linked to your
site and said the folks that run that site are knowledgeable and responsible
and if they say it
there, it's been researched and is up-to-date.
I consider what you do
in trying to help cat owners to be the work of &angels&.&
Dr Katherine James,
Urology and Nephrology
Specialist at the
March 2007
Recommended by ,
the newsletter of
Cornell University College of Veterinary Medicine
Recommended by the
Recommended by the Pet Community Website
August 2008
Recommended in the
International Cat Care Journal
Volume 43 (4) 2005
The Best of the Net Award
February 2002.
Recommended in the
International Cat Care Journal
Volume 40 (3) 2002
Recommended in
December 2000
THIS SITE:&
This page last updated:
04 August 2014
Website last updated: 26 June 2014
See above for when this particular page was last updated
TREATING YOUR CAT WITHOUT VETERINARY ADVICE CAN BE
EXTREMELY DANGEROUS.
tried very hard to ensure that the information provided in this website is
accurate, but I am NOT a vet, just an ordinary person who has lived
through CKD with three cats. This website is for educational purposes
only, and is not intended to be used to diagnose or treat any cat. Before
trying any of the treatments described herein, you MUST consult a
qualified veterinarian and obtain professional advice on the correct
regimen for your cat and his or her par and you
should only use any treatments described here with the full knowledge and
approval of your vet. No responsibility can be accepted.
If your cat
appears to be in pain or distress, do not waste time on the internet,
contact your vet immediately.
Copyright (C)
Tanya's Feline CKD Website . All rights reserved.
This site was
created using Microsoft software, and therefore it is best viewed in
Internet Explorer. I know it doesn't always display too well in other
browsers, but I'm not an IT expert so I'm afraid I don't know how to
change that. I would love it to display perfectly everywhere, but my focus
is on making the information available. I am trying to teach myself to use
another type of software, in the hope that using it will enable to site to
display better in the future.
You may print
out one copy of each section of this site for your own information and/or
one copy to give to your vet (though it is about 800 pages long, so it is
probably cheaper and it is definitely easier to buy the book version!), but this site may not otherwise be
reproduced or reprinted, on the internet or elsewhere, without the
permission of the site owner, who can be contacted via the
This site is a labour of love on my part. Please do not
steal from me by taking credit for my work.
If you wish to
link to this site, please feel free to do so. Please make it clear that
this is a link and not your own work. I would appreciate being informed of
your link.All you need to know about CSS Transitions
CSS3 transitions bring simple and elegant animations to web applications, but there’s a lot more to the spec than first meets the eye.
In this post I’m going to delve into some of the more complicated parts of CSS transitions, from chaining and events to hardware acceleration and animation functions.
Letting the browser control animations sequences allows it to optimize performance and efficiency by altering the frame rate, minimizing paints and offloading some of the work to the GPU.
Browser support
are supported in practically every version of Firefox, Safari and Chrome. They’re supported in IE 10 and onwards. If CSS animations aren’t supported in a given browser, than the properties will be applied instantly, gracefully degrading.
Webkit based browsers (Safari and Chrome), still require -webkit prefixes for animations and gradients, but these are soon being .
Applying transitions
A simple way of applying transitions is with CSS pseudo-classes, such as :hover. Notice we’re specifying the property name, the length of transition, and one of the default timing functions, linear [].
.element {
height: 100
transition: height 2
.element:hover {
height: 200
When the :hover pseudo-class is activated, the height will be transitioned linearly from 100px to 200px over a period of 2 seconds.
duration is the only required item in the transition shorthand. The browser defaults to a timing function of ease, and a property of all, unless these are provided.
We don’t want to be restricted to using psuedo-classes when it comes to activating transitions - clearly that’s not very flexible. The solution is to programmatically add and remove classes [].
.element {
opacity: 0.0;
transform: scale(0.95) translate3d(0,100%,0);
transition: transform 400ms ease, opacity 400
.element.active {
opacity: 1.0;
transform: scale(1.0) translate3d(0,0,0);
.element.inactive {
opacity: 0.0;
transform: scale(1) translate3d(0,0,0);
// JS with jQuery
var active = function(){
$('.element').removeClass('inactive').addClass('active');
var inactive = function(){
$('.element').removeClass('active').addClass('inactive');
In the example above, we’ve got two different transitions, the element slides up when activated, and fades out when deactivated. All the JavaScript does is toggle the two classes active and inactive.
Transitioning gradients
Not every CSS property can be transitioned, and the basic rule is that you can only transition through absolute values. For example, you can’t transition between a height of 0px to auto. The browser can’t calculate the intermediate transition values, so the property change is instant. Oli Studholme has conveniently provided .
The other major property that can’t be transitioned between is background gradients (although pure colors are supported). There’s no technical reason behind this limitation, it’s just taking a while for the browsers to implement support.
In the mean time, there are a few good workarounds. The first involves adding a transparency to the gradient, and then transitioning between background colors. For example []:
background-color: #000;
background-image: linear-gradient(rgba(255, 255, 0, 0.4), #FAFAFA);
transition: background-color 400
.panel:hover {
background-color: #DDD;
If the gradient is continuous, you can transition the background-position as . Otherwise, your last resort is to create two elements, one overlaid on top of the other, and transition their opacity [].
.element {
width: 100
height: 100
background: linear-gradient(#C7D3DC,#5B798E);
.element .inner {
content: '';
left: 0; top: 0; right: 0; bottom: 0;
background: linear-gradient(#DDD, #FAFAFA);
opacity: 0;
transition: opacity 1
.element:hover .inner {
opacity: 1;
The caveats to the latter approach are that it does require extra markup, and the inner div can catch pointer events. Pseudo elements, such as :before and :after would be an ideal use-case here, but unfortunately only Firefox supports pseudo element transitions. Eliott Sprehn is working on support for Webkit, which is .
Hardware acceleration
Transitioning certain properties, such as left and margin causes the browser to
recalculating styles every frame. This is fairly expensive, and can lead to unnecessary re-paints, especially if you have a lot of elements on the screen. This is especially noticeable in less powerful devices, such as mobiles.
This solution is to offload the rendering to the GPU using CSS transformations. In simple terms, this turns the element into an image during the transition, avoiding any style recalculations which greatly increases performance. A simple way of forcing the browser to hardware render an element is to set the transformation’s z axis, which you can do with translate3d:
transform: translate3d(0,0,0);
Now, this isn’t a magic cure to performance problems, and comes with lots of issues of its own. You should only use hardware acceleration when it’s required, and certainly not enable it on every element.
For example, hardware acceleration can cause subtle font issues, such as a font appearing to lose its weight. This is due to a bug where subpixel anti-aliasing isn’t supported when an element is being hardware accelerated. You can see a clear difference between the two rendering modes:
The short-term fix,
, is to disable subpixel anti-aliasing completely. However, be sure to understand the .
font-smoothing:
In addition, different browsers use different hardware acceleration libraries, which can cause cross-browser problems. For example, whilst Chrome and Safari are both built on WebKit, Chrome uses Skia for graphics rendering while Safari uses CoreGraphics. The differences between the two are subtle, but real.
You can use Chrome’s Inspector to Profile the page, showing all the repaints. Additionally you can show paint triangles in the Inspector’s options, and even turn on Composited Render Layer Borders in about:flags to see which layers are operating on the GPU. The key is to reduce paints by batch updating the DOM, and move as much as possible to the GPU.
If you’re having display issues between browsers with hardware acceleration, such as flickering or juddering, make sure you’re not nestling elements with the transform3d() CSS property set. As a last resort, try having browser specific transformations.
It’s worth noting that the translate3d hack is becoming less relevant. In fact recent builds of Chrome automatically use the GPU for opacity and 2d transitions. iOS6 Safari has explicitly disabled this trick, and requires .
To take advantage of GPU rendering, you’ll need to avoid style recalculations by using CSS transformations rather than properties like width. What do you do though if you do need to animate an element’s width? The solution is clipping.
In the example below, you can see a search box with two transition states. The second expanded state is hidden by a clipping element.
To transition to the expanded width, all we need to is translate the X axis left. The key thing here is that we’re using translate3d rather than altering the element’s width [].
.clipped {
.clipped .clip {
height: 45
background: url(/images/clip.png) no-repeat
input:focus {
-webkit-transform: translate3d(-50px, 0, 0);
By ensuring that we’re not recalculating the element’s width every frame, the transition will a whole lot smoother and performant.
Timing functions
So far we’ve been using some of the browser’s pre-defined timing functions: linear, ease, ease-in, ease-out and ease-in-out. For more complex timing functions we’re going to have to write our own timing function by specifying four points along a cubic-bezier curve.
transition: -webkit-transform 1s cubic-bezier(.17,.67,.69,1.33);
Rather than guessing at values, it’s often easier to either use a bunch of , or play around with a .
Notice you can drag the values out of bounds and produce a bouncing transition, for example:
transition: all 600ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
Programmatic transitions
Writing transitions in CSS is all very well, but sometimes you need a bit more control, especially when it comes to chaining transitions. Luckily we can not only invoke transitions from JavaScript, but also define them.
CSS transitions take a magical all property which ensures that any property changes are transitioned. Let’s see how to use this in practice [].
var defaults = {
duration: 400,
easing: ''
$.fn.transition = function (properties, options) {
options = $.extend({}, defaults, options);
properties['webkitTransition'] = 'all ' + options.duration + 'ms ' + options.
$(this).css(properties);
Now we have this jQuery function $.fn.transition, which we can use to programmatically invoke transitions.
$('.element').transition({background: 'red'});
Transition callback
The next step to chaining transitions is having transition end callbacks. You can achieve this in Webkit, by listening to the webkitTransitionEnd event. For other browsers, you’ll need to do a
to find the right event name.
var callback = function () {
$(this).one('webkitTransitionEnd', callback)
$(this).css(properties);
Be aware that sometimes this event doesn’t fire, usually in the case when properties don’t change or a paint isn’t triggered. To ensure we always get a callback, let’s set a timeout that’ll trigger the event manually.
$.fn.emulateTransitionEnd = function(duration) {
var called = false, $el =
$(this).one('webkitTransitionEnd', function() { called = });
var callback = function() { if (!called) $($el).trigger('webkitTransitionEnd'); };
setTimeout(callback, duration);
Now we can invoke $.fn.emulateTransitionEnd() before we set the element’s CSS to ensure our transition end callback is triggered [].
$(this).one('webkitTransitionEnd', callback);
$(this).emulateTransitionEnd(options.duration + 50);
$(this).css(properties);
Chaining transitions
So now we can programmatically apply transitions, getting callbacks when they finish, we can start queuing transitions. We could write our own queue to do this, but as we’re using jQuery we might as well tap into the library’s existing functionality.
jQuery provides two main functions to communicate with its queuing API, $.fn.queue(callback) and $.fn.dequeue(). The former adds a callback to the queue, while the latter executes the next item on the queue.
In other words we need to set our CSS transition inside a $.fn.queue callback, and then make sure we invoke $.fn.dequeue when the transition is complete [].
var $el = $(this);
$el.queue(function(){
$el.one('webkitTransitionEnd', function(){
$el.dequeue();
$el.css(properties);
That’s example is fairly simple, but it lets us build up complex chained animations, and even use jQuery’s delay() for example:
$('.element').transition({left: '20px'})
.delay(200)
.transition({background: 'red'});
Often when transitioning, you’ll have two sets of CSS properties. The initial properties that the animation should start at, and the final set of properties the transition should end on.
$('.element').css({left: '10px'})
.transition({left: '20px'});
However, you’ll find that if you apply both sets of properties, one immediately after the other, then the browser tries to optimize the property changes, ignoring your initial properties and preventing a transition. Behind the scenes, browsers batch up property changes before painting which, while usually speeding up rendering, can sometimes have adverse affects.
The solution is to force a redraw between applying the two sets of properties. A simple method of doing this is just by accessing a DOM element’s offsetHeight property, like so []:
$.fn.redraw = function(){
$(this).each(function(){
var redraw = this.offsetH
This will work in most browsers, but I’ve had occasions in Android where this hasn’t been enough. The alternative is to either use timeouts, or by toggling a class name.
$('.element').css({left: '10px'})
.transition({left: '20px'});
The future
Transitions are being actively worked on, and the
looks really promising. The proposals include a new JavaScript API focussing on addressing some of the existing limitations to transitions, and giving developers much more flexibility.
In fact, you can find a . It involves instantiating a Animation constructor, passing in an element to animate, the properties to animate to, and various other options such as a delay.
var anim = new Animation(elem, { left: '100px' }, 3);
anim.play();
With this new API you can synchronize animations, provide custom timing functions, and get completion callbacks. This is truly exciting stuff!
Transitions
By now, you hopefully have a deeper understanding of CSS transitions, and how a simple API can be combined to produce complex and rich effects.
Most of the JavaScript examples come straight out of the source of , a jQuery CSS transition library. As well as the , I’ve included a number of , such as slide in/out, explode in/out and 3d flipping.
for reviewing this article.
Incidentally, I’ve been turning the contents of this post into a talk. If you know or organize a conference that would be suitable for this material, please do get in touch! Over the last year I spoke at six conferences, and I’m keen to do even more in 2013.

我要回帖

更多关于 doyouknow是什么意思 的文章

 

随机推荐